forked from organicmaps/organicmaps
[iOS] Fixed visual bugs and crashes in style system
https://jira.mail.ru/browse/MAPSME-12818
This commit is contained in:
parent
17c627d701
commit
382dffe7db
42 changed files with 310 additions and 185 deletions
|
@ -211,8 +211,6 @@ using namespace std;
|
|||
[super viewDidLoad];
|
||||
|
||||
self.searchBar.delegate = self;
|
||||
[self.statusBarBackground setStyleAndApply:@"SearchBarView"];
|
||||
[self.searchBar setStyleAndApply: @"SearchBar"];
|
||||
self.searchBar.placeholder = L(@"search_in_the_list");
|
||||
|
||||
[self.noResultsView setTranslatesAutoresizingMaskIntoConstraints:NO];
|
||||
|
|
|
@ -105,6 +105,9 @@
|
|||
<constraints>
|
||||
<constraint firstAttribute="height" constant="108" id="R0d-xI-qxQ"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="SearchBarView"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="CQZ-YM-Mk4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
|
||||
|
|
|
@ -329,18 +329,6 @@
|
|||
return viewSize
|
||||
}
|
||||
|
||||
override func applyTheme() {
|
||||
super.applyTheme()
|
||||
leftTextColor = leftTextColor.opposite()
|
||||
rightTextColor = rightTextColor.opposite()
|
||||
topTextColor = topTextColor.opposite()
|
||||
bottomTextColor = bottomTextColor.opposite()
|
||||
filledColor = filledColor.opposite()
|
||||
emptyColor = emptyColor.opposite()
|
||||
emptyBorderColor = emptyBorderColor.opposite()
|
||||
filledBorderColor = filledBorderColor.opposite()
|
||||
}
|
||||
|
||||
private func createLayers() -> [CALayer] {
|
||||
return combineLayers(starLayers: createStarLayers(), textLayers: createTextLayers())
|
||||
}
|
||||
|
|
|
@ -81,30 +81,30 @@ final class BCCreateCategoryAlert: MWMAlert {
|
|||
}
|
||||
|
||||
private func process(state: State) {
|
||||
let color: UIColor
|
||||
let styleName: String
|
||||
switch state {
|
||||
case .valid:
|
||||
color = UIColor.blackHintText()
|
||||
styleName = "blackHintText"
|
||||
rightButton.isEnabled = true
|
||||
errorLabel.isHidden = true
|
||||
case .tooFewSymbols:
|
||||
color = UIColor.blackHintText()
|
||||
styleName = "blackHintText"
|
||||
errorLabel.isHidden = true
|
||||
rightButton.isEnabled = false
|
||||
case .tooManySymbols:
|
||||
color = UIColor.buttonRed()
|
||||
styleName = "buttonRedText"
|
||||
errorLabel.isHidden = false
|
||||
errorLabel.text = L("bookmarks_error_title_list_name_too_long")
|
||||
rightButton.isEnabled = false
|
||||
case .nameAlreadyExists:
|
||||
color = UIColor.buttonRed()
|
||||
styleName = "buttonRedText"
|
||||
errorLabel.isHidden = false
|
||||
errorLabel.text = L("bookmarks_error_title_list_name_already_taken")
|
||||
rightButton.isEnabled = false
|
||||
}
|
||||
|
||||
charactersCountLabel.textColor = color
|
||||
textFieldContainer.layer.borderColor = color.cgColor
|
||||
charactersCountLabel.setStyleAndApply(styleName)
|
||||
textFieldContainer.layer.borderColor = charactersCountLabel.textColor.cgColor
|
||||
}
|
||||
|
||||
private func formatCharactersCountText() {
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="create"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="medium17:blackHintText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="FlatNormalTransButton:medium17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="rightButtonTap" destination="QQB-Ml-wwB" eventType="touchUpInside" id="HT2-dB-W2f"/>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
|
@ -22,13 +24,13 @@
|
|||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3y4-jh-JUF" customClass="RouteManagerDimView" customModule="maps_me" customModuleProvider="target" propertyAccessControl="none">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<subviews>
|
||||
<view userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TC7-xW-EwE">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kTd-fr-ia7">
|
||||
<rect key="frame" x="166.5" y="265.5" width="42" height="136.5"/>
|
||||
<rect key="frame" x="186" y="380" width="42" height="136.5"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_route_manager_trash" translatesAutoresizingMaskIntoConstraints="NO" id="ZEN-kK-2CA">
|
||||
<rect key="frame" x="-3" y="40" width="48" height="48"/>
|
||||
|
@ -92,14 +94,14 @@
|
|||
<point key="canvasLocation" x="288" y="-49"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="TKX-qe-h4F" propertyAccessControl="none">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i5M-Pr-FkT">
|
||||
<rect key="frame" x="0.0" y="563" width="375" height="104"/>
|
||||
<rect key="frame" x="0.0" y="758" width="414" height="138"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="s0L-ul-gog" customClass="RouteManagerHeaderView" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="48"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="760" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dQh-uc-65J">
|
||||
<rect key="frame" x="16" y="14" width="42" height="20.5"/>
|
||||
|
@ -112,7 +114,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0Fo-Ae-QrQ">
|
||||
<rect key="frame" x="311" y="0.0" width="48" height="48"/>
|
||||
<rect key="frame" x="370" y="0.0" width="28" height="48"/>
|
||||
<inset key="contentEdgeInsets" minX="8" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<inset key="imageEdgeInsets" minX="-8" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="ic_get_position"/>
|
||||
|
@ -121,7 +123,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MJB-bK-y5c">
|
||||
<rect key="frame" x="16" y="47" width="359" height="1"/>
|
||||
<rect key="frame" x="16" y="47" width="398" height="1"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="aOa-8P-yGw"/>
|
||||
|
@ -154,17 +156,17 @@
|
|||
</connections>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mqc-M4-MPb" customClass="RouteManagerFooterView" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="48" width="375" height="48"/>
|
||||
<rect key="frame" x="0.0" y="48" width="414" height="48"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="or0-Gy-0su">
|
||||
<rect key="frame" x="-100" y="0.0" width="575" height="148"/>
|
||||
<rect key="frame" x="-100" y="0.0" width="614" height="148"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="BlackOpaqueBackground"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pjx-6o-NWS">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="1"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="1"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="jFT-3E-Yrc"/>
|
||||
|
@ -185,7 +187,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="u3h-0s-UBo">
|
||||
<rect key="frame" x="313" y="0.0" width="46" height="48"/>
|
||||
<rect key="frame" x="352" y="0.0" width="46" height="48"/>
|
||||
<state key="normal" title="Button"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="FlatNormalTransButton"/>
|
||||
|
@ -213,6 +215,9 @@
|
|||
<constraint firstAttribute="trailing" secondItem="or0-Gy-0su" secondAttribute="trailing" constant="-100" id="zfL-pn-451"/>
|
||||
<constraint firstItem="or0-Gy-0su" firstAttribute="top" secondItem="mqc-M4-MPb" secondAttribute="top" id="ztB-hC-yRP"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="Background"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="background" destination="or0-Gy-0su" id="aFx-YJ-deT"/>
|
||||
<outlet property="cancelButton" destination="2WE-hS-hzl" id="8op-cA-N4M"/>
|
||||
|
@ -221,12 +226,15 @@
|
|||
</connections>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="48" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="Zqd-YQ-ksD" customClass="RouteManagerTableView" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="48" width="375" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="48" width="414" height="0.0"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<gestureRecognizers/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" id="69R-bB-eQ7"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="TableView"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-1" id="RZu-Qk-qvN"/>
|
||||
<outlet property="delegate" destination="-1" id="QdP-tL-Afh"/>
|
||||
|
@ -250,6 +258,9 @@
|
|||
<constraint firstItem="mqc-M4-MPb" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leadingMargin" constant="-8" id="gvJ-kF-Ylk"/>
|
||||
<constraint firstItem="s0L-ul-gog" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="ub9-gl-pdn"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="Background"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
|
|
|
@ -7,7 +7,7 @@ final class BaseRoutePreviewStatus: SolidTouchView {
|
|||
@IBOutlet weak var manageRouteBoxBackground: UIView! {
|
||||
didSet {
|
||||
iPhoneSpecific {
|
||||
manageRouteBoxBackground.styleName = "BlackOpaqueColor"
|
||||
manageRouteBoxBackground.styleName = "BlackOpaqueBackground"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,9 +40,11 @@ class Style: ExpressibleByDictionaryLiteral {
|
|||
case pageIndicatorTintColor
|
||||
case currentPageIndicatorTintColor
|
||||
|
||||
case ratingViewSettings
|
||||
case coloring
|
||||
case colors
|
||||
case images
|
||||
case exclusions
|
||||
case unknown
|
||||
}
|
||||
|
||||
|
@ -50,6 +52,9 @@ class Style: ExpressibleByDictionaryLiteral {
|
|||
typealias Value = Any?
|
||||
|
||||
var params:[Key: Value] = [:]
|
||||
var isEmpty: Bool {
|
||||
return params.isEmpty
|
||||
}
|
||||
|
||||
required init(dictionaryLiteral elements: (Style.Parameter, Any?)...) {
|
||||
for (key, value) in elements {
|
||||
|
@ -63,17 +68,31 @@ class Style: ExpressibleByDictionaryLiteral {
|
|||
|
||||
func append(_ style: Style) {
|
||||
params.merge(style.params) { (a, b) -> Style.Value in
|
||||
return b
|
||||
return a
|
||||
}
|
||||
}
|
||||
|
||||
func append(_ styles: [Style]) {
|
||||
styles.forEach { (style) in
|
||||
params.merge(style.params) { (a, b) -> Style.Value in
|
||||
return b
|
||||
return a
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func hasExclusion(view: UIView) -> Bool {
|
||||
guard let exclusions = exclusions else {
|
||||
return false
|
||||
}
|
||||
var superView:UIView? = view
|
||||
while (superView != nil) {
|
||||
if exclusions.contains(String(describing: type(of: superView!))) {
|
||||
return true
|
||||
}
|
||||
superView = superView?.superview
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
extension Style {
|
||||
|
@ -262,6 +281,11 @@ extension Style {
|
|||
set { params[.currentPageIndicatorTintColor] = newValue }
|
||||
}
|
||||
|
||||
var ratingViewSettings: RatingViewSettings? {
|
||||
get { return self[.ratingViewSettings] as? RatingViewSettings }
|
||||
set { params[.ratingViewSettings] = newValue }
|
||||
}
|
||||
|
||||
var colors: [UIColor]? {
|
||||
get { return self[.colors] as? [UIColor] }
|
||||
set { params[.colors] = newValue }
|
||||
|
@ -276,4 +300,9 @@ extension Style {
|
|||
get { return self[.coloring] as? MWMButtonColoring }
|
||||
set { params[.coloring] = newValue }
|
||||
}
|
||||
|
||||
var exclusions: Set<String>? {
|
||||
get { return self[.exclusions] as? Set<String> }
|
||||
set { params[.exclusions] = newValue }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
UISearchBarRenderer.setAppearance()
|
||||
if #available(iOS 13, *) {} else {
|
||||
UISearchBarRenderer.setAppearance()
|
||||
}
|
||||
}
|
||||
|
||||
private func updateView(_ view: UIView?) {
|
||||
|
|
|
@ -6,21 +6,20 @@ class GlobalStyleSheet: IStyleSheet {
|
|||
theme.add(styleName: "TableView") { (s) -> (Void) in
|
||||
s.backgroundColor = colors.white
|
||||
s.separatorColor = colors.blackDividers
|
||||
s.exclusions = [String(describing: UIDatePicker.self)]
|
||||
}
|
||||
|
||||
theme.add(styleName: "TableCell") { (s) -> (Void) in
|
||||
s.backgroundColor = colors.white
|
||||
s.fontColor = colors.blackPrimaryText
|
||||
s.tintColor = colors.blackPrimaryText
|
||||
s.fontColorDetailed = colors.blackSecondaryText
|
||||
}
|
||||
|
||||
theme.add(styleName: "MWMTableViewCell") { (s) -> (Void) in
|
||||
s.backgroundColor = colors.white
|
||||
s.fontColor = colors.blackPrimaryText
|
||||
s.tintColor = colors.blackPrimaryText
|
||||
s.tintColor = colors.linkBlue
|
||||
s.fontColorDetailed = colors.blackSecondaryText
|
||||
s.backgroundColorSelected = colors.pressBackground
|
||||
s.exclusions = [String(describing: UIDatePicker.self),
|
||||
"_UIActivityUserDefaultsActivityCell"]
|
||||
}
|
||||
|
||||
theme.add(styleName: "MWMTableViewCell", from: "TableCell") { (s) -> (Void) in
|
||||
}
|
||||
|
||||
theme.add(styleName: "TableViewHeaderFooterView") { (s) -> (Void) in
|
||||
|
@ -158,6 +157,16 @@ class GlobalStyleSheet: IStyleSheet {
|
|||
s.shadowOffset = CGSize(width: 0, height: 0)
|
||||
}
|
||||
|
||||
theme.add(styleName: "RatingView") { (s) -> (Void) in
|
||||
var settings = RatingViewSettings()
|
||||
settings.filledColor = colors.ratingYellow
|
||||
settings.emptyColor = colors.blackDividers
|
||||
settings.textFonts[.right] = fonts.regular10
|
||||
settings.textColors[.right] = colors.blackSecondaryText
|
||||
s.ratingViewSettings = settings
|
||||
s.borderWidth = 0
|
||||
}
|
||||
|
||||
//MARK: Buttons
|
||||
theme.add(styleName: "FlatNormalButton") { (s) -> (Void) in
|
||||
s.font = fonts.medium14
|
||||
|
@ -181,6 +190,7 @@ class GlobalStyleSheet: IStyleSheet {
|
|||
s.fontColor = colors.linkBlue
|
||||
s.backgroundColor = colors.clear
|
||||
s.fontColorHighlighted = colors.linkBlueHighlighted
|
||||
s.fontColorDisabled = colors.blackHintText
|
||||
s.backgroundColorHighlighted = colors.clear
|
||||
}
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@ extension Checkmark {
|
|||
if styleName.isEmpty {
|
||||
styleName = "Checkmark"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
CheckmarkRenderer.render(self, style: style)
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
CheckmarkRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
extension MWMButton {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
MWMButtonRenderer.render(self, style: style)
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
MWMButtonRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,40 +4,15 @@ extension MWMTableViewCell {
|
|||
if styleName.isEmpty {
|
||||
styleName = "MWMTableViewCell"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
MWMTableViewCellRenderer.render(self, style: style)
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
MWMTableViewCellRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MWMTableViewCellRenderer {
|
||||
class MWMTableViewCellRenderer: UITableViewCellRenderer {
|
||||
class func render(_ control: MWMTableViewCell, style: Style) {
|
||||
if let label = control.textLabel {
|
||||
if let font = style.font {
|
||||
label.font = font
|
||||
}
|
||||
if let fontColor = style.fontColor {
|
||||
label.textColor = fontColor
|
||||
}
|
||||
}
|
||||
if let detailedLabel = control.detailTextLabel {
|
||||
if let fontDetailed = style.fontDetailed {
|
||||
detailedLabel.font = fontDetailed
|
||||
}
|
||||
if let fontColorDetailed = style.fontColorDetailed {
|
||||
detailedLabel.textColor = fontColorDetailed
|
||||
}
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
control.tintColor = tintColor
|
||||
control.accessoryView?.tintColor = tintColor
|
||||
}
|
||||
if let backgroundColor = style.backgroundColor {
|
||||
control.backgroundColor = backgroundColor
|
||||
control.backgroundView = UIImageView(image: backgroundColor.getImage())
|
||||
}
|
||||
if let backgroundColorSelected = style.backgroundColorSelected {
|
||||
control.selectedBackgroundView = UIImageView(image: backgroundColorSelected.getImage())
|
||||
}
|
||||
super.render(control, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import Foundation
|
||||
extension RatingSummaryView {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
RatingSummaryViewRenderer.render(self, style: style)
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
RatingSummaryViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +23,7 @@ class RatingSummaryViewRenderer {
|
|||
control.excellentColor = colors[5]
|
||||
}
|
||||
if let images = style.images, images.count == 6 {
|
||||
control.normalImage = UIImage(named: images[0])
|
||||
control.noValueImage = UIImage(named: images[0])
|
||||
control.horribleImage = UIImage(named: images[1])
|
||||
control.badImage = UIImage(named: images[2])
|
||||
control.normalImage = UIImage(named: images[3])
|
||||
|
|
24
iphone/Maps/Core/Theme/Renderers/RatingViewRenderer.swift
Normal file
24
iphone/Maps/Core/Theme/Renderers/RatingViewRenderer.swift
Normal file
|
@ -0,0 +1,24 @@
|
|||
import Foundation
|
||||
extension RatingView {
|
||||
@objc override func applyTheme() {
|
||||
if styleName.isEmpty {
|
||||
styleName = "RatingView"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
RatingViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class RatingViewRenderer {
|
||||
class func render(_ control: RatingView, style: Style) {
|
||||
if let settings = style.ratingViewSettings {
|
||||
control.settings = settings
|
||||
}
|
||||
if let borderWidth = style.borderWidth {
|
||||
control.borderWidth = borderWidth
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,8 @@ extension TabView {
|
|||
if styleName.isEmpty {
|
||||
styleName = "TabView"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
TabViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UIActivityIndicatorView {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIActivityIndicatorRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UIButton {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIButtonRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UIImageView {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIImageViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,8 @@ extension UILabel {
|
|||
}
|
||||
|
||||
@objc override func applyTheme() {
|
||||
let styles = StyleManager.shared.getStyle(styleName)
|
||||
for style in styles {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UILabelRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,8 @@ extension UINavigationBar {
|
|||
if styleName.isEmpty {
|
||||
styleName = "NavigationBar"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UINavigationBarRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UINavigationItem {
|
|||
if styleName.isEmpty {
|
||||
styleName = "NavigationBarItem"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty {
|
||||
UINavigationItemRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UIPageControl {
|
|||
if styleName.isEmpty {
|
||||
styleName = "PageControl"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIPageControlenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,20 +4,46 @@ extension UISearchBar {
|
|||
if styleName.isEmpty {
|
||||
styleName = "SearchBar"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UISearchBarRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
||||
@objc override func sw_didMoveToWindow() {
|
||||
guard UIApplication.shared.keyWindow === window else {
|
||||
sw_didMoveToWindow();
|
||||
return
|
||||
}
|
||||
applyTheme()
|
||||
isStyleApplied = true
|
||||
sw_didMoveToWindow();
|
||||
}
|
||||
}
|
||||
|
||||
class UISearchBarRenderer: UIViewRenderer {
|
||||
class func render(_ control: UISearchBar, style: Style) {
|
||||
super.render(control, style: style)
|
||||
var searchTextField: UITextField?
|
||||
if #available(iOS 13, *) {
|
||||
searchTextField = control.searchTextField
|
||||
}
|
||||
if let backgroundColor = style.backgroundColor {
|
||||
searchTextField?.backgroundColor = backgroundColor
|
||||
}
|
||||
if let barTintColor = style.barTintColor {
|
||||
control.barTintColor = barTintColor
|
||||
control.backgroundImage = barTintColor.getImage()
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
control.tintColor = tintColor
|
||||
searchTextField?.tintColor = tintColor
|
||||
}
|
||||
if let font = style.font {
|
||||
searchTextField?.font = font
|
||||
}
|
||||
if let fontColor = style.fontColor {
|
||||
searchTextField?.textColor = fontColor
|
||||
searchTextField?.leftView?.tintColor = fontColor
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,14 +53,15 @@ class UISearchBarRenderer: UIViewRenderer {
|
|||
if let backgroundColor = style.backgroundColor {
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = backgroundColor
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).leftView?.tintColor = tintColor
|
||||
}
|
||||
if let font = style.font {
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).font = font
|
||||
}
|
||||
if let fontColor = style.fontColor {
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).textColor = fontColor
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).leftView?.tintColor = fontColor
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = tintColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UISwitch {
|
|||
if styleName.isEmpty {
|
||||
styleName = "Switch"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UISwitchRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UITableViewCell {
|
|||
if styleName.isEmpty {
|
||||
styleName = "TableCell"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UITableViewCellRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +28,9 @@ class UITableViewCellRenderer {
|
|||
detailedLabel.textColor = fontColorDetailed
|
||||
}
|
||||
}
|
||||
if let fontColorDetailed = style.fontColorDetailed {
|
||||
control.imageView?.tintColor = fontColorDetailed
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
control.tintColor = tintColor
|
||||
control.accessoryView?.tintColor = tintColor
|
||||
|
@ -35,5 +39,8 @@ class UITableViewCellRenderer {
|
|||
control.backgroundColor = backgroundColor
|
||||
control.backgroundView = UIImageView(image: backgroundColor.getImage())
|
||||
}
|
||||
if let backgroundColorSelected = style.backgroundColorSelected {
|
||||
control.selectedBackgroundView = UIImageView(image: backgroundColorSelected.getImage())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UITableViewHeaderFooterView {
|
|||
if styleName.isEmpty {
|
||||
styleName = "TableViewHeaderFooterView"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UITableViewHeaderFooterViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UITableView {
|
||||
@objc override func applyTheme() {
|
||||
if styleName.isEmpty {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
styleName = "TableView"
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UITextField {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UITextFieldRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
@ -18,14 +19,25 @@ extension UITextField {
|
|||
|
||||
class UITextFieldRenderer {
|
||||
class func render(_ control: UITextField, style: Style) {
|
||||
var placeholderAttributes = [NSAttributedString.Key : Any]()
|
||||
if let backgroundColor = style.backgroundColor {
|
||||
control.backgroundColor = backgroundColor
|
||||
}
|
||||
if let font = style.font {
|
||||
control.font = font
|
||||
placeholderAttributes[NSAttributedString.Key.font] = font
|
||||
}
|
||||
if let fontColor = style.fontColor {
|
||||
control.textColor = fontColor
|
||||
|
||||
}
|
||||
if let tintColor = style.tintColor {
|
||||
control.tintColor = tintColor
|
||||
placeholderAttributes[NSAttributedString.Key.foregroundColor] = tintColor
|
||||
}
|
||||
if let attributedPlaceholder = control.attributedPlaceholder, !attributedPlaceholder.string.isEmpty {
|
||||
control.attributedPlaceholder = NSAttributedString(string: attributedPlaceholder.string,
|
||||
attributes: placeholderAttributes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UITextView {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UITextViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UIToolbar {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIToolbarRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ extension UIView {
|
|||
if type(of: self.superview) == UINavigationBar.self {
|
||||
return;
|
||||
}
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIViewRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
extension UIWindow {
|
||||
@objc override func applyTheme() {
|
||||
for style in StyleManager.shared.getStyle(styleName) {
|
||||
for style in StyleManager.shared.getStyle(styleName)
|
||||
where !style.isEmpty && !style.hasExclusion(view: self) {
|
||||
UIWindowRenderer.render(self, style: style)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,6 +73,7 @@ class SearchStyleSheet: IStyleSheet {
|
|||
theme.add(styleName: "SearchSearchTextField") { (s) -> (Void) in
|
||||
s.fontColor = colors.blackSecondaryText
|
||||
s.backgroundColor = colors.white
|
||||
s.tintColor = colors.blackSecondaryText
|
||||
}
|
||||
|
||||
theme.add(styleName: "SearchSearchTextFieldIcon") { (s) -> (Void) in
|
||||
|
|
9
iphone/Maps/Core/Theme/Swizzle/UISearchBar+swizzle.h
Normal file
9
iphone/Maps/Core/Theme/Swizzle/UISearchBar+swizzle.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface UISearchBar (swizzle)
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
8
iphone/Maps/Core/Theme/Swizzle/UISearchBar+swizzle.m
Normal file
8
iphone/Maps/Core/Theme/Swizzle/UISearchBar+swizzle.m
Normal file
|
@ -0,0 +1,8 @@
|
|||
#import "UISearchBar+swizzle.h"
|
||||
#import "SwizzleStyle.h"
|
||||
|
||||
@implementation UISearchBar (swizzle)
|
||||
+(void)load {
|
||||
[SwizzleStyle swizzle:[self class] methodName:@"didMoveToWindow"];
|
||||
}
|
||||
@end
|
|
@ -3,8 +3,6 @@
|
|||
|
||||
@implementation UITextField (swizzle)
|
||||
+(void)load {
|
||||
if (@available(iOS 12, *)) {
|
||||
[SwizzleStyle swizzle:[self class] methodName:@"didMoveToWindow"];
|
||||
}
|
||||
[SwizzleStyle swizzle:[self class] methodName:@"didMoveToWindow"];
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -619,6 +619,7 @@
|
|||
995739042355CAA30019AEE7 /* PageIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995739032355CAA30019AEE7 /* PageIndicator.swift */; };
|
||||
995739062355CAC40019AEE7 /* ImageViewCrossDisolve.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995739052355CAC40019AEE7 /* ImageViewCrossDisolve.swift */; };
|
||||
995739082355CB660019AEE7 /* AllPassSubscriptionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995739072355CB660019AEE7 /* AllPassSubscriptionViewController.swift */; };
|
||||
9974CA3A23E05B9C003FE824 /* RatingViewRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9974CA3923E05B9C003FE824 /* RatingViewRenderer.swift */; };
|
||||
999D3A67237BFA4600C5F7A8 /* SubscriptionViewBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999D3A66237BFA4600C5F7A8 /* SubscriptionViewBuilder.swift */; };
|
||||
999FC12023ABA9AD00B0E6F9 /* SearchStyleSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999FC11F23ABA9AD00B0E6F9 /* SearchStyleSheet.swift */; };
|
||||
999FC12223ABABA000B0E6F9 /* IFonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999FC12123ABABA000B0E6F9 /* IFonts.swift */; };
|
||||
|
@ -650,6 +651,7 @@
|
|||
99D363172358647700941BF4 /* SubscriptionGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D363162358647700941BF4 /* SubscriptionGroup.swift */; };
|
||||
99D363192358685300941BF4 /* SubscriptionGroupItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D363182358685300941BF4 /* SubscriptionGroupItem.swift */; };
|
||||
99D3631E23589BE800941BF4 /* FredokaOne-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 99D3631D23589BE800941BF4 /* FredokaOne-Regular.ttf */; };
|
||||
99DEF9D023E2CD67006BFD21 /* UISearchBar+swizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 99DEF9CF23E2CD67006BFD21 /* UISearchBar+swizzle.m */; };
|
||||
99E2B0122368A8C700FFABC5 /* MWMCategory+PlacesCountTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E2B0112368A8C700FFABC5 /* MWMCategory+PlacesCountTitle.swift */; };
|
||||
99E2B01E23698B0800FFABC5 /* WelcomeProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E2B01D23698B0800FFABC5 /* WelcomeProtocols.swift */; };
|
||||
99E2B0232369904800FFABC5 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E2B0222369904800FFABC5 /* WelcomeViewController.swift */; };
|
||||
|
@ -1677,6 +1679,7 @@
|
|||
9957FAE0237AE04900855F48 /* MWMMapViewControlsManager+AddPlace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MWMMapViewControlsManager+AddPlace.h"; sourceTree = "<group>"; };
|
||||
9957FAE3237AE3CF00855F48 /* DeepLinkCatalogueStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkCatalogueStrategy.swift; sourceTree = "<group>"; };
|
||||
9957FAEA237AF22800855F48 /* DeepLinkIncorrectStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkIncorrectStrategy.swift; sourceTree = "<group>"; };
|
||||
9974CA3923E05B9C003FE824 /* RatingViewRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RatingViewRenderer.swift; sourceTree = "<group>"; };
|
||||
999D3A60237B088C00C5F7A8 /* DeepLinkSubscriptionStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkSubscriptionStrategy.swift; sourceTree = "<group>"; };
|
||||
999D3A66237BFA4600C5F7A8 /* SubscriptionViewBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionViewBuilder.swift; sourceTree = "<group>"; };
|
||||
999D3A68237C0ADD00C5F7A8 /* DeepLinkMapStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkMapStrategy.swift; sourceTree = "<group>"; };
|
||||
|
@ -1713,6 +1716,8 @@
|
|||
99D363162358647700941BF4 /* SubscriptionGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionGroup.swift; sourceTree = "<group>"; };
|
||||
99D363182358685300941BF4 /* SubscriptionGroupItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionGroupItem.swift; sourceTree = "<group>"; };
|
||||
99D3631D23589BE800941BF4 /* FredokaOne-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "FredokaOne-Regular.ttf"; sourceTree = "<group>"; };
|
||||
99DEF9CE23E2CD67006BFD21 /* UISearchBar+swizzle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UISearchBar+swizzle.h"; sourceTree = "<group>"; };
|
||||
99DEF9CF23E2CD67006BFD21 /* UISearchBar+swizzle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UISearchBar+swizzle.m"; sourceTree = "<group>"; };
|
||||
99E2B0112368A8C700FFABC5 /* MWMCategory+PlacesCountTitle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MWMCategory+PlacesCountTitle.swift"; sourceTree = "<group>"; };
|
||||
99E2B01D23698B0800FFABC5 /* WelcomeProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeProtocols.swift; sourceTree = "<group>"; };
|
||||
99E2B0222369904800FFABC5 /* WelcomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = "<group>"; };
|
||||
|
@ -3604,6 +3609,8 @@
|
|||
9929693A23D89B7100B0D5D9 /* UIView+swizzle.m */,
|
||||
9929693C23D89C1400B0D5D9 /* UITextField+swizzle.h */,
|
||||
9929693D23D89C1400B0D5D9 /* UITextField+swizzle.m */,
|
||||
99DEF9CE23E2CD67006BFD21 /* UISearchBar+swizzle.h */,
|
||||
99DEF9CF23E2CD67006BFD21 /* UISearchBar+swizzle.m */,
|
||||
);
|
||||
path = Swizzle;
|
||||
sourceTree = "<group>";
|
||||
|
@ -3690,6 +3697,7 @@
|
|||
991FCA1D23AD0A73009AD684 /* MWMButtonRenderer.swift */,
|
||||
99F50FC723B273F800E95228 /* MWMTableViewCellRenderer.swift */,
|
||||
99169D7223D06B390006A9CA /* RatingSummaryViewRenderer.swift */,
|
||||
9974CA3923E05B9C003FE824 /* RatingViewRenderer.swift */,
|
||||
999FC12E23ABD53300B0E6F9 /* TabViewRenderer.swift */,
|
||||
994AEBEB23AB763C0079B81F /* UIActivityIndicatorRenderer.swift */,
|
||||
994AEBEA23AB763C0079B81F /* UIButtonRenderer.swift */,
|
||||
|
@ -5296,6 +5304,7 @@
|
|||
34E50DF81F6FCC96008EED49 /* UGCReviewCell.swift in Sources */,
|
||||
F6E2FF3F1E097BA00083EBEC /* MWMSearchTableViewController.mm in Sources */,
|
||||
F6E2FDE01E097BA00083EBEC /* MWMEditorViewController.mm in Sources */,
|
||||
99DEF9D023E2CD67006BFD21 /* UISearchBar+swizzle.m in Sources */,
|
||||
994AEC3423AB7B410079B81F /* DiscoveryStyleSheet.swift in Sources */,
|
||||
6741A9C01BF340DE002C974C /* MWMTextView.m in Sources */,
|
||||
B32FE74320D2B09600EF7446 /* CatalogWebViewController.swift in Sources */,
|
||||
|
@ -5331,6 +5340,7 @@
|
|||
34845DAF1E1649F6003D55B9 /* DownloaderNoResultsEmbedViewController.swift in Sources */,
|
||||
CD6E8677226774C700D1EDF7 /* CPConstants.swift in Sources */,
|
||||
F6791B141C43DF0B007A8A6E /* MWMStartButton.m in Sources */,
|
||||
9974CA3A23E05B9C003FE824 /* RatingViewRenderer.swift in Sources */,
|
||||
47A04171238DE8AE00D84E95 /* HotelFacilitiesViewController.swift in Sources */,
|
||||
479D306522C664CE00D18278 /* MWMDownloadBannerViewController.m in Sources */,
|
||||
F6E2FEDF1E097BA00083EBEC /* MWMSearchManager+Layout.m in Sources */,
|
||||
|
|
|
@ -2,7 +2,6 @@ final class UGCAddReviewRatingCell: MWMTableViewCell {
|
|||
@IBOutlet weak var titleLabel: UILabel!
|
||||
@IBOutlet weak var ratingView: RatingView! {
|
||||
didSet {
|
||||
ratingView.borderWidth = 0
|
||||
ratingView.delegate = self
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
|
||||
final class UGCSummaryRatingStarsCell: UICollectionViewCell {
|
||||
@IBOutlet private weak var ratingView: RatingView! {
|
||||
didSet {
|
||||
ratingView.topTextFont = UIFont.regular10()
|
||||
ratingView.topTextColor = UIColor.blackSecondaryText()
|
||||
ratingView.borderWidth = 0
|
||||
}
|
||||
}
|
||||
@IBOutlet private weak var ratingView: RatingView!
|
||||
|
||||
func config(rating: UGCRatingStars) {
|
||||
ratingView.topText = L(rating.title)
|
||||
|
|
|
@ -35,6 +35,14 @@ NSTimeInterval constexpr kOnSearchCompletedDelay = 0.2;
|
|||
return rect;
|
||||
}
|
||||
|
||||
#pragma mark - Draw
|
||||
|
||||
- (void)drawPlaceholderInRect:(CGRect)rect
|
||||
{
|
||||
[[self placeholder] drawInRect:rect withAttributes:@{NSFontAttributeName: self.font,
|
||||
NSForegroundColorAttributeName: self.tintColor}];
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setIsSearching:(BOOL)isSearching
|
||||
|
@ -50,7 +58,7 @@ NSTimeInterval constexpr kOnSearchCompletedDelay = 0.2;
|
|||
UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
|
||||
[view startAnimating];
|
||||
view.bounds = self.leftView.bounds;
|
||||
view.styleName = @"SearchSearchTextFieldIcon";
|
||||
view.styleName = @"SearchSearchTextFieldIcon";
|
||||
self.leftView = view;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Wns-nH-AQU">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
|
@ -11,49 +13,49 @@
|
|||
<objects>
|
||||
<viewController id="xTf-lf-yxN" customClass="MapViewController" sceneMemberID="viewController">
|
||||
<view key="view" clearsContextBeforeDrawing="NO" multipleTouchEnabled="YES" contentMode="scaleToFill" id="USG-6L-Uhw">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_carplay_activated" translatesAutoresizingMaskIntoConstraints="NO" id="Tqh-46-Yrm">
|
||||
<rect key="frame" x="220" y="220" width="160" height="160"/>
|
||||
<rect key="frame" x="127" y="373" width="160" height="160"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="160" id="dkE-Cj-sE5"/>
|
||||
<constraint firstAttribute="width" constant="160" id="pz7-lu-Ocm"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aPn-pa-nCx" customClass="EAGLView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<color key="backgroundColor" red="0.8666666666666667" green="0.8666666666666667" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rL1-9E-4b7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<subviews>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="65S-M4-TnM" customClass="NavigationInfoArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="818"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="1" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TdT-ia-GP9" customClass="MenuArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="862"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="1" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="awj-9E-eBS" customClass="PlacePageArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="862"/>
|
||||
<color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FFY-Dy-Wou" customClass="VisibleArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="862"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.0" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NI8-tV-i2B" customClass="WidgetsArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="818"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.0" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xJx-UU-IdV" customClass="SideButtonsArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="818"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="1" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QKu-4A-UgP" customClass="TrafficButtonArea" customModule="maps_me" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="818"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.0" alpha="0.20000000000000001" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
</subviews>
|
||||
|
@ -181,7 +183,6 @@
|
|||
<navigationController automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="Wns-nH-AQU" customClass="MWMNavigationController" sceneMemberID="viewController">
|
||||
<toolbarItems/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="OK2-RC-YDq">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<nil name="viewControllers"/>
|
||||
|
@ -198,7 +199,7 @@
|
|||
<objects>
|
||||
<tableViewController id="lFr-lA-JTW" customClass="MWMEditBookmarkController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="Rb3-ea-7LJ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
|
@ -234,7 +235,7 @@
|
|||
<objects>
|
||||
<tableViewController id="Lfa-Zp-orR" customClass="MWMEditorViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="HU6-ak-Eu1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
|
@ -260,11 +261,11 @@
|
|||
<objects>
|
||||
<viewController id="Ld6-gM-2hk" customClass="MWMOpeningHoursEditorViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="U1f-hD-9rl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="none" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" translatesAutoresizingMaskIntoConstraints="NO" id="X1H-IB-Nv1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="556"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="774"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="PressBackground"/>
|
||||
|
@ -275,10 +276,10 @@
|
|||
</connections>
|
||||
</tableView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aQv-7U-zAP">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="556"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="774"/>
|
||||
<subviews>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="PrH-u2-IEv" userLabel="Editor View" customClass="MWMTextView">
|
||||
<rect key="frame" x="0.0" y="36" width="600" height="88"/>
|
||||
<rect key="frame" x="0.0" y="36" width="414" height="88"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="oAE-yX-hVe"/>
|
||||
|
@ -295,7 +296,7 @@
|
|||
</connections>
|
||||
</textView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="z2Z-G2-Np7">
|
||||
<rect key="frame" x="0.0" y="35" width="600" height="1"/>
|
||||
<rect key="frame" x="0.0" y="35" width="414" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="xUX-ck-MQb"/>
|
||||
</constraints>
|
||||
|
@ -304,7 +305,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="ebA-fW-ddJ">
|
||||
<rect key="frame" x="0.0" y="123" width="600" height="1"/>
|
||||
<rect key="frame" x="0.0" y="123" width="414" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="HOj-tZ-b3F"/>
|
||||
</constraints>
|
||||
|
@ -313,7 +314,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="5T5-Pp-hb5">
|
||||
<rect key="frame" x="0.0" y="511" width="600" height="1"/>
|
||||
<rect key="frame" x="0.0" y="729" width="414" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="ZXK-zv-uSz"/>
|
||||
</constraints>
|
||||
|
@ -322,7 +323,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="IX2-yp-0oa">
|
||||
<rect key="frame" x="0.0" y="164" width="600" height="1"/>
|
||||
<rect key="frame" x="0.0" y="164" width="414" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="rD4-fE-ez2"/>
|
||||
</constraints>
|
||||
|
@ -331,10 +332,10 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="85Z-MR-kUV" userLabel="Help View">
|
||||
<rect key="frame" x="0.0" y="164" width="600" height="328"/>
|
||||
<rect key="frame" x="0.0" y="164" width="414" height="328"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n79-h1-Nk3" userLabel="Button">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Example values" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="120" translatesAutoresizingMaskIntoConstraints="NO" id="dAM-iT-fzu">
|
||||
<rect key="frame" x="16" y="12" width="120" height="20"/>
|
||||
|
@ -347,7 +348,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_arrow_gray_down" translatesAutoresizingMaskIntoConstraints="NO" id="m7d-sG-5LN">
|
||||
<rect key="frame" x="568" y="10" width="24" height="24"/>
|
||||
<rect key="frame" x="382" y="10" width="24" height="24"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="24" id="2aF-WV-ER2"/>
|
||||
<constraint firstAttribute="width" constant="24" id="eak-KY-Xaa"/>
|
||||
|
@ -357,7 +358,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="Suj-t5-ZWs">
|
||||
<rect key="frame" x="16" y="44" width="584" height="1"/>
|
||||
<rect key="frame" x="16" y="44" width="398" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="cv8-Tg-Oin"/>
|
||||
</constraints>
|
||||
|
@ -366,7 +367,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MiP-Du-s3i">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="toggleExample" destination="Ld6-gM-2hk" eventType="touchUpInside" id="BGK-Ap-YBq"/>
|
||||
|
@ -393,7 +394,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5R-JF-iCs">
|
||||
<rect key="frame" x="10" y="56" width="580" height="260"/>
|
||||
<rect key="frame" x="10" y="56" width="394" height="260"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="260" id="sfy-fK-VSx"/>
|
||||
|
@ -439,10 +440,10 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SZQ-ra-FC3" userLabel="Mode Switch">
|
||||
<rect key="frame" x="0.0" y="556" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="818" width="414" height="44"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="tailTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fB1-w2-lJI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<inset key="contentEdgeInsets" minX="16" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Simple Mode"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
|
@ -453,7 +454,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_arrow_gray_right" translatesAutoresizingMaskIntoConstraints="NO" id="z8F-55-5rJ">
|
||||
<rect key="frame" x="568" y="10" width="24" height="24"/>
|
||||
<rect key="frame" x="382" y="10" width="24" height="24"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="24" id="ypP-17-bfX"/>
|
||||
<constraint firstAttribute="height" constant="24" id="zE5-1N-qvh"/>
|
||||
|
@ -463,7 +464,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="separator_image" translatesAutoresizingMaskIntoConstraints="NO" id="onT-vv-01i">
|
||||
<rect key="frame" x="0.0" y="-1" width="600" height="1"/>
|
||||
<rect key="frame" x="0.0" y="-1" width="414" height="1"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="UUW-c4-eNA"/>
|
||||
</constraints>
|
||||
|
@ -531,15 +532,15 @@
|
|||
<objects>
|
||||
<tableViewController id="ocL-kj-jxR" customClass="MWMEditorAdditionalNamesTableViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="tQ2-XI-QWd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="ListCellIdentifier" textLabel="JcK-nR-UGw" detailTextLabel="Cmi-x5-6Vt" style="IBUITableViewCellStyleSubtitle" id="RXe-xp-xlR" customClass="MWMTableViewCell">
|
||||
<rect key="frame" x="0.0" y="28" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="28" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="RXe-xp-xlR" id="g0x-Vt-1FI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JcK-nR-UGw">
|
||||
|
@ -575,7 +576,7 @@
|
|||
<objects>
|
||||
<tableViewController id="Heu-QR-M0N" customClass="MWMStreetEditorViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="rJJ-UB-6u2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="44" maxX="0.0" maxY="0.0"/>
|
||||
|
@ -594,11 +595,11 @@
|
|||
<objects>
|
||||
<viewController id="QlF-CJ-cEG" customClass="MWMObjectsCategorySelectorController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="MIY-NW-Joh">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" translatesAutoresizingMaskIntoConstraints="NO" id="JbV-y9-HBo">
|
||||
<rect key="frame" x="0.0" y="56" width="600" height="544"/>
|
||||
<rect key="frame" x="0.0" y="100" width="414" height="762"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="TableView:PressBackground"/>
|
||||
|
@ -609,7 +610,7 @@
|
|||
</connections>
|
||||
</tableView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rI9-RR-sKP" userLabel="Status Bar Background">
|
||||
<rect key="frame" x="0.0" y="-52" width="600" height="108"/>
|
||||
<rect key="frame" x="0.0" y="-8" width="414" height="108"/>
|
||||
<color key="backgroundColor" red="0.1215686275" green="0.59999999999999998" blue="0.32156862749999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
|
@ -620,7 +621,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="gzF-B7-8pj">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="56"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="56"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="44" id="2uI-k6-ahr"/>
|
||||
|
@ -665,11 +666,11 @@
|
|||
<objects>
|
||||
<viewController id="da4-KT-kzF" customClass="MWMCuisineEditorViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="iTG-qE-svw">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" translatesAutoresizingMaskIntoConstraints="NO" id="ina-WD-kps">
|
||||
<rect key="frame" x="0.0" y="56" width="600" height="544"/>
|
||||
<rect key="frame" x="0.0" y="100" width="414" height="762"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="TableView:PressBackground"/>
|
||||
|
@ -680,7 +681,7 @@
|
|||
</connections>
|
||||
</tableView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HEU-Bu-3wh" userLabel="Status Bar Background">
|
||||
<rect key="frame" x="0.0" y="-52" width="600" height="108"/>
|
||||
<rect key="frame" x="0.0" y="-8" width="414" height="108"/>
|
||||
<color key="backgroundColor" red="0.1215686275" green="0.59999999999999998" blue="0.32156862749999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
|
@ -691,7 +692,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="z6s-26-dP6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="56"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="56"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="44" id="UAk-z1-2EY"/>
|
||||
|
@ -735,15 +736,15 @@
|
|||
<objects>
|
||||
<viewController storyboardIdentifier="DownloadMapsViewController" id="h4a-ne-bSJ" customClass="MWMDownloadMapsViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="XQZ-0V-SyR">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="1" translatesAutoresizingMaskIntoConstraints="NO" id="CwW-x8-G3j">
|
||||
<rect key="frame" x="0.0" y="56" width="600" height="544"/>
|
||||
<rect key="frame" x="0.0" y="100" width="414" height="762"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<gestureRecognizers/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="PressBackground"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="TableView:PressBackground"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="h4a-ne-bSJ" id="nrq-1D-7lZ"/>
|
||||
|
@ -751,17 +752,17 @@
|
|||
</connections>
|
||||
</tableView>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="st5-ZJ-F0A" userLabel="UpdateAllView">
|
||||
<rect key="frame" x="16" y="556" width="568" height="44"/>
|
||||
<rect key="frame" x="16" y="818" width="382" height="44"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0aj-pt-FjD">
|
||||
<rect key="frame" x="0.0" y="0.0" width="568" height="1"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="382" height="1"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="1" id="6LI-Em-15P"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GN0-2F-Ytz" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="568" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="382" height="44"/>
|
||||
<color key="backgroundColor" red="0.034757062792778015" green="0.31522077322006226" blue="0.81491315364837646" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<state key="normal" title="Update All">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -774,7 +775,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bQM-6x-WHa" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="568" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="382" height="44"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<state key="normal" title="Update All">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -816,7 +817,7 @@
|
|||
</variation>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Xxz-fq-71r" userLabel="Status Bar Background">
|
||||
<rect key="frame" x="0.0" y="-52" width="600" height="108"/>
|
||||
<rect key="frame" x="0.0" y="-8" width="414" height="108"/>
|
||||
<color key="backgroundColor" red="0.1215686275" green="0.59999999999999998" blue="0.32156862749999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
|
@ -827,22 +828,17 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<searchBar contentMode="redraw" translatesAutoresizingMaskIntoConstraints="NO" id="DPt-gs-efn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="56"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="56"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="44" id="9M7-y1-RSU"/>
|
||||
</constraints>
|
||||
<color key="barTintColor" red="0.1215686275" green="0.59999999999999998" blue="0.32156862749999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="styleName" value="searchBar"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="h4a-ne-bSJ" id="k3P-rj-vcL"/>
|
||||
</connections>
|
||||
</searchBar>
|
||||
<containerView hidden="YES" opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kXO-Oh-2vO" userLabel="No Maps Container View">
|
||||
<rect key="frame" x="0.0" y="56" width="600" height="544"/>
|
||||
<rect key="frame" x="0.0" y="100" width="414" height="762"/>
|
||||
<connections>
|
||||
<segue destination="b8o-rZ-x0k" kind="embed" identifier="MapDownloaderNoResultsEmbedViewControllerSegue" id="ish-dC-mkH"/>
|
||||
</connections>
|
||||
|
@ -898,13 +894,13 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gmw-e3-n53" userLabel="Container" customClass="MWMNoMapsView">
|
||||
<rect key="frame" x="3.5" y="0.0" width="407" height="762"/>
|
||||
<rect key="frame" x="3.5" y="44" width="407" height="674"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dCZ-PN-2Ob" userLabel="BoundsView">
|
||||
<rect key="frame" x="16" y="0.0" width="375" height="658"/>
|
||||
<rect key="frame" x="16" y="0.0" width="375" height="570"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="87G-jh-N8H" userLabel="CenteredView">
|
||||
<rect key="frame" x="0.0" y="204.5" width="375" height="249"/>
|
||||
<rect key="frame" x="0.0" y="160.5" width="375" height="249"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalCompressionResistancePriority="749" image="img_no_maps" translatesAutoresizingMaskIntoConstraints="NO" id="vI9-fc-FO2">
|
||||
<rect key="frame" x="107.5" y="0.0" width="160" height="160"/>
|
||||
|
@ -965,7 +961,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Moj-UK-oyl" userLabel="DownloadMaps" customClass="MWMButton">
|
||||
<rect key="frame" x="83.5" y="678" width="240" height="44"/>
|
||||
<rect key="frame" x="83.5" y="590" width="240" height="44"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="49x-bx-JJj"/>
|
||||
|
@ -1036,11 +1032,11 @@
|
|||
<objects>
|
||||
<viewController storyboardIdentifier="SearchNoResultsViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="0VQ-EO-9Sv" customClass="SearchNoResultsViewController" customModule="maps_me" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="9jm-RW-DZK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EbW-Mp-c6s">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<rect key="frame" x="0.0" y="241" width="414" height="414"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" secondItem="EbW-Mp-c6s" secondAttribute="height" multiplier="1:1" id="tBC-sb-Q3g"/>
|
||||
|
@ -1102,7 +1098,6 @@
|
|||
<navigationController automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="b8o-rZ-x0k" customClass="MWMDownloaderNoResultsEmbedViewController" sceneMemberID="viewController">
|
||||
<toolbarItems/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="iNT-L2-ifB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<nil name="viewControllers"/>
|
||||
|
|
Loading…
Add table
Reference in a new issue