14@property (nonatomic, strong) UIStackView *stackView;
15@property (nonatomic, strong, nullable) NSLayoutConstraint *stackWidthConstraint;
16@property (nonatomic, strong, nullable) NSLayoutConstraint *stackHeightConstraint;
45 UIButton *zoomOutButton = [
UIButton buttonWithType:UIButtonTypeSystem];
46 UIButton *zoomInButton = [
UIButton buttonWithType:UIButtonTypeSystem];
49 [zoomInButton setImage:[c.zoomInIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
50 zoomInButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
52 [zoomInButton setTitle:@"+" forState:UIControlStateNormal];
55 [zoomOutButton setImage:[c.zoomOutIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
56 zoomOutButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
58 [zoomOutButton setTitle:@"−" forState:UIControlStateNormal];
61 zoomOutButton.backgroundColor = bgColor;
62 zoomInButton.backgroundColor = bgColor;
63 zoomOutButton.tintColor = tintColor;
64 zoomInButton.tintColor = tintColor;
67 zoomOutButton.layer.maskedCorners = kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner;
69 zoomInButton.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;
71 zoomOutButton.titleLabel.font = [UIFont systemFontOfSize:kNCButtonFontSize];
72 zoomInButton.titleLabel.font = [UIFont systemFontOfSize:kNCButtonFontSize];
74 [zoomOutButton addTarget:
self action:@selector(zoomOutPressed:) forControlEvents:UIControlEventTouchUpInside];
75 [zoomInButton addTarget:
self action:@selector(zoomInPressed:) forControlEvents:UIControlEventTouchUpInside];
77 UIStackView *stack = [[UIStackView alloc] initWithArrangedSubviews:@[zoomInButton, zoomOutButton]];
78 stack.axis = UILayoutConstraintAxisVertical;
79 stack.distribution = UIStackViewDistributionFillEqually;
81 stack.translatesAutoresizingMaskIntoConstraints = NO;
88 [
self addSubview:stack];
90 self.translatesAutoresizingMaskIntoConstraints = NO;
92 [NSLayoutConstraint activateConstraints:@[
93 [stack.leadingAnchor constraintEqualToAnchor:
self.leadingAnchor],
94 [stack.trailingAnchor constraintEqualToAnchor:
self.trailingAnchor],
95 [stack.topAnchor constraintEqualToAnchor:
self.topAnchor],
96 [stack.bottomAnchor constraintEqualToAnchor:
self.bottomAnchor],
98 self.stackWidthConstraint = [stack.widthAnchor constraintEqualToConstant:width];
99 self.stackHeightConstraint = [stack.heightAnchor constraintEqualToConstant:height];
100 self.stackWidthConstraint.active = YES;
101 self.stackHeightConstraint.active = YES;
106 if (!_stackView || _stackView.arrangedSubviews.count < 2)
return;
107 UIButton *zoomInButton = (UIButton *)_stackView.arrangedSubviews[0];
108 UIButton *zoomOutButton = (UIButton *)_stackView.arrangedSubviews[1];
115 [
zoomInButton setImage:[
c.
zoomInIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
116 [
zoomInButton setTitle:nil forState:UIControlStateNormal];
118 [
zoomInButton setImage:nil forState:UIControlStateNormal];
119 [
zoomInButton setTitle:@"+" forState:UIControlStateNormal];
122 [
zoomOutButton setImage:[
c.
zoomOutIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
129 zoomInButton.backgroundColor = bgColor;
130 zoomOutButton.backgroundColor = bgColor;
131 zoomInButton.tintColor = tintColor;
132 zoomOutButton.tintColor = tintColor;
136 if (
self.stackWidthConstraint) {
137 self.stackWidthConstraint.constant = width;
139 if (
self.stackHeightConstraint) {
140 self.stackHeightConstraint.constant = height;
144- (void)zoomOutPressed:(UIButton *)sender {
145 if (
self.onZoomOut) {
150- (void)zoomInPressed:(UIButton *)sender {