blob: 30e9a9ec156c7569871344116df17e57c1076037 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#import "MWMDownloadMapRequestView.h"
#import "UIButton+RuntimeAttributes.h"
#import "UIColor+MapsMeColor.h"
namespace
{
CGFloat const kButtonsCompactSpacing = 22.0;
CGFloat const kButtonsLooseSpacing = 60.0;
}
@interface MWMDownloadMapRequestView ()
@property (weak, nonatomic) IBOutlet UILabel * mapTitleLabel;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * verticalFreeSpace;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * bottomSpacing;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * unknownPositionLabelBottomOffset;
@property (weak, nonatomic) IBOutlet UIButton * downloadMapButton;
@property (weak, nonatomic) IBOutlet UILabel * undefinedLocationLabel;
@property (weak, nonatomic) IBOutlet UIButton * selectAnotherMapButton;
@property (weak, nonatomic) IBOutlet UIView * progressViewWrapper;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * betweenButtonsSpace;
@end
@implementation MWMDownloadMapRequestView
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
return self;
}
- (void)layoutSubviews
{
UIView * superview = self.superview;
self.frame = superview.bounds;
BOOL const isLandscape = superview.height > superview.width;
if (IPAD || isLandscape)
{
self.verticalFreeSpace.constant = 44.0;
self.bottomSpacing.constant = 24.0;
self.unknownPositionLabelBottomOffset.constant = 22.0;
}
else
{
self.verticalFreeSpace.constant = 20.0;
self.bottomSpacing.constant = 8.0;
self.unknownPositionLabelBottomOffset.constant = 18.0;
CGFloat const iPhone6LandscapeHeight = 375.0;
if (self.width < iPhone6LandscapeHeight)
{
self.mapTitleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
self.mapTitleLabel.numberOfLines = 1;
}
else
{
self.mapTitleLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.mapTitleLabel.numberOfLines = 0;
}
}
[super layoutSubviews];
}
#pragma mark - Properties
- (void)setState:(enum MWMDownloadMapRequestState)state
{
_state = state;
switch (state)
{
case MWMDownloadMapRequestStateDownload:
self.progressViewWrapper.hidden = NO;
self.mapTitleLabel.hidden = NO;
self.downloadMapButton.hidden = YES;
self.undefinedLocationLabel.hidden = YES;
self.selectAnotherMapButton.hidden = YES;
self.betweenButtonsSpace.constant = kButtonsCompactSpacing;
break;
case MWMDownloadMapRequestStateRequestLocation:
self.progressViewWrapper.hidden = YES;
self.mapTitleLabel.hidden = NO;
self.downloadMapButton.hidden = NO;
self.undefinedLocationLabel.hidden = YES;
self.selectAnotherMapButton.hidden = NO;
[self.selectAnotherMapButton setTitle:L(@"search_select_other_map") forState:UIControlStateNormal];
[self.selectAnotherMapButton setTitleColor:[UIColor linkBlue] forState:UIControlStateNormal];
[self.selectAnotherMapButton setTitleColor:[UIColor white] forState:UIControlStateHighlighted];
[self.selectAnotherMapButton setBackgroundColor:[UIColor white] forState:UIControlStateNormal];
[self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlue] forState:UIControlStateHighlighted];
self.betweenButtonsSpace.constant = kButtonsCompactSpacing;
break;
case MWMDownloadMapRequestStateRequestUnknownLocation:
self.progressViewWrapper.hidden = YES;
self.mapTitleLabel.hidden = YES;
self.downloadMapButton.hidden = YES;
self.undefinedLocationLabel.hidden = NO;
self.selectAnotherMapButton.hidden = NO;
[self.selectAnotherMapButton setTitle:L(@"search_select_map") forState:UIControlStateNormal];
[self.selectAnotherMapButton setTitleColor:[UIColor white] forState:UIControlStateNormal];
[self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlue] forState:UIControlStateNormal];
[self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlueDark] forState:UIControlStateHighlighted];
self.betweenButtonsSpace.constant = kButtonsLooseSpacing;
break;
}
}
@end
|