2121// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2222
2323#import " TOSegmentedControlSegment.h"
24+
2425#import " TOSegmentedControl.h"
26+
2527#import < UIKit/UIKit.h>
2628
2729// -------------------------------------------------
@@ -56,133 +58,125 @@ @implementation TOSegmentedControlSegment
5658#pragma mark - Object Lifecyle -
5759
5860- (instancetype )initWithObject : (id )object
59- forSegmentedControl : (TOSegmentedControl *)segmentedControl
60- {
61+ forSegmentedControl : (TOSegmentedControl *)segmentedControl {
6162 if (![object isKindOfClass: NSString .class] && ![object isKindOfClass: UIImage.class]) {
6263 return nil ;
6364 }
64-
65+
6566 if (self = [super init ]) {
6667 if ([object isKindOfClass: NSString .class]) {
6768 _title = (NSString *)object;
68- }
69- else {
69+ } else {
7070 _image = (UIImage *)object;
7171 }
7272 _segmentedControl = segmentedControl;
7373 [self commonInit ];
7474 }
75-
75+
7676 return self;
7777}
7878
7979- (instancetype )initWithTitle : (NSString *)title
80- forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl
81- {
80+ forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl {
8281 if (self = [super init ]) {
8382 _title = [title copy ];
8483 _segmentedControl = segmentedControl;
8584 [self commonInit ];
8685 }
87-
86+
8887 return self;
8988}
9089
9190- (instancetype )initWithImage : (UIImage *)image
92- forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl
93- {
91+ forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl {
9492 if (self = [super init ]) {
9593 _image = image;
9694 _segmentedControl = segmentedControl;
9795 [self commonInit ];
9896 }
99-
97+
10098 return self;
10199}
102100
103101- (instancetype )initWithTitle : (NSString *)title
104102 reversible : (BOOL )reversible
105- forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl
106- {
103+ forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl {
107104 if (self = [super init ]) {
108105 _title = [title copy ];
109106 _isReversible = reversible;
110107 _segmentedControl = segmentedControl;
111108 [self commonInit ];
112109 }
113-
110+
114111 return self;
115112}
116113
117114- (instancetype )initWithImage : (UIImage *)image
118115 reversible : (BOOL )reversible
119- forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl
120- {
116+ forSegmentedControl : (nonnull TOSegmentedControl *)segmentedControl {
121117 if (self = [super init ]) {
122118 _image = image;
123119 _isReversible = reversible;
124120 _segmentedControl = segmentedControl;
125121 [self commonInit ];
126122 }
127-
123+
128124 return self;
129125}
130126
131- - (void )dealloc
132- {
127+ - (void )dealloc {
133128 [self .itemView removeFromSuperview ];
134129}
135130
136131#pragma mark - Comnvenience Initializers -
137132
138- + (NSArray *)segmentsWithObjects : (NSArray *)objects forSegmentedControl : (nonnull TOSegmentedControl *) segmentedControl
139- {
133+ + (NSArray *)segmentsWithObjects : (NSArray *)objects
134+ forSegmentedControl : (nonnull TOSegmentedControl *) segmentedControl {
140135 NSMutableArray *array = [NSMutableArray array ];
141-
136+
142137 // Create an object for each item in the array.
143138 // Skip anything that isn't an image or a label
144139 for (id object in objects) {
145140 TOSegmentedControlSegment *item = nil ;
146141 if ([object isKindOfClass: NSString .class]) {
147142 item = [[TOSegmentedControlSegment alloc ] initWithTitle: object
148- forSegmentedControl: segmentedControl];
149- }
150- else if ([object isKindOfClass: UIImage.class]) {
143+ forSegmentedControl: segmentedControl];
144+ } else if ([object isKindOfClass: UIImage.class]) {
151145 item = [[TOSegmentedControlSegment alloc ] initWithImage: object
152- forSegmentedControl: segmentedControl];
146+ forSegmentedControl: segmentedControl];
153147 }
154148
155- if (item) { [array addObject: item]; }
149+ if (item) {
150+ [array addObject: item];
151+ }
156152 }
157-
153+
158154 return [NSArray arrayWithArray: array];
159155}
160156
161157#pragma mark - Set-up -
162158
163- - (void )commonInit
164- {
159+ - (void )commonInit {
165160 // Create the container view
166161 _containerView = [[UIView alloc ] init ];
167162
168163 // Create the initial image / label view
169164 [self refreshItemView ];
170-
165+
171166 // Refresh the reversible state
172167 [self refreshReversibleView ];
173168}
174169
175170#pragma mark - Reversible Management -
176171
177- - (void )refreshReversibleView
178- {
172+ - (void )refreshReversibleView {
179173 // If we're no longer (Or never were) reversible,
180174 // hide and exit out
181175 if (!self.isReversible ) {
182176 self.arrowView .hidden = YES ;
183177 return ;
184178 }
185-
179+
186180 // Create the arrow view if we haven't done so yet
187181 if (self.arrowView == nil && self.arrowImageView == nil ) {
188182 UIImage *arrow = self.segmentedControl .arrowImage ;
@@ -191,7 +185,8 @@ - (void)refreshReversibleView
191185 [self .containerView addSubview: self .arrowView];
192186
193187 self.arrowImageView = [[UIImageView alloc ] initWithImage: arrow];
194- self.arrowImageView .autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
188+ self.arrowImageView .autoresizingMask =
189+ UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
195190 [self .arrowView addSubview: self .arrowImageView];
196191 }
197192
@@ -204,10 +199,11 @@ - (void)refreshReversibleView
204199
205200#pragma mark - View Management -
206201
207- - (UILabel *)makeLabelForTitle : (NSString *)title
208- {
209- if (title.length == 0 ) { return nil ; }
210-
202+ - (UILabel *)makeLabelForTitle : (NSString *)title {
203+ if (title.length == 0 ) {
204+ return nil ;
205+ }
206+
211207 // Object is a string. Create a label
212208 UILabel *label = [[UILabel alloc ] init ];
213209 label.text = title;
@@ -216,22 +212,20 @@ - (UILabel *)makeLabelForTitle:(NSString *)title
216212 label.font = self.segmentedControl .selectedTextFont ;
217213 label.adjustsFontSizeToFitWidth = YES ;
218214 label.minimumScaleFactor = 0 .3f ;
219- [label sizeToFit ]; // Size to the selected font
215+ [label sizeToFit ]; // Size to the selected font
220216 label.font = self.segmentedControl .textFont ;
221217 label.backgroundColor = [UIColor clearColor ];
222218 return label;
223219}
224220
225- - (UIImageView *)makeImageViewForImage : (UIImage *)image
226- {
221+ - (UIImageView *)makeImageViewForImage : (UIImage *)image {
227222 // Object is an image. Create an image view
228223 UIImageView *imageView = [[UIImageView alloc ] initWithImage: image];
229224 imageView.tintColor = self.segmentedControl .itemColor ;
230225 return imageView;
231226}
232227
233- - (void )refreshItemView
234- {
228+ - (void )refreshItemView {
235229 // Convenience check for whether the view is a label or image
236230 UIImageView *imageView = self.imageView ;
237231 UILabel *label = self.label ;
@@ -241,34 +235,34 @@ - (void)refreshItemView
241235 if (imageView && self.image ) {
242236 [(UIImageView *)self .itemView setImage: self .image];
243237 }
244-
238+
245239 // If it's already a label, refresh the text
246240 if (label && self.title ) {
247241 [(UILabel *)self .itemView setText: self .title];
248242 }
249-
243+
250244 // If it's an image view, but the title text is set, swap them out
251245 if (!label && self.title ) {
252246 [imageView removeFromSuperview ];
253247 imageView = nil ;
254-
248+
255249 self.itemView = [self makeLabelForTitle: self .title];
256250 [self .containerView addSubview: self .itemView];
257-
251+
258252 label = (UILabel *)self.itemView ;
259253 }
260-
254+
261255 // If it's a label view, but the image is set, swap them out
262256 if (!imageView && self.image ) {
263257 [label removeFromSuperview ];
264258 label = nil ;
265-
259+
266260 self.itemView = [self makeImageViewForImage: self .image];
267261 [self .containerView addSubview: self .itemView];
268-
262+
269263 imageView = (UIImageView *)self.itemView ;
270264 }
271-
265+
272266 // Update the label view
273267 label.textColor = self.segmentedControl .itemColor ;
274268
@@ -278,61 +272,58 @@ - (void)refreshItemView
278272
279273 // Set back to default font
280274 label.font = self.segmentedControl .textFont ;
281-
275+
282276 // Update the image view
283277 imageView.tintColor = self.segmentedControl .itemColor ;
284278}
285279
286- - (void )toggleDirection
287- {
280+ - (void )toggleDirection {
288281 self.isReversed = !self.isReversed ;
289282}
290283
291284#pragma mark - Public Accessors -
292285
293- - (void )setTitle : (NSString *)title
294- {
286+ - (void )setTitle : (NSString *)title {
295287 // Copy text, and regenerate the view if need be
296288 _title = [title copy ];
297289 _image = nil ;
298290 [self refreshItemView ];
299291}
300292
301- - (void )setImage : (UIImage *)image
302- {
303- if (_image == image) { return ; }
293+ - (void )setImage : (UIImage *)image {
294+ if (_image == image) {
295+ return ;
296+ }
304297 _image = image;
305298 _title = nil ;
306299 [self refreshItemView ];
307300}
308301
309- - (void )setIsReversible : (BOOL )isReversible
310- {
311- if (_isReversible == isReversible) { return ; }
302+ - (void )setIsReversible : (BOOL )isReversible {
303+ if (_isReversible == isReversible) {
304+ return ;
305+ }
312306 _isReversible = isReversible;
313307 [self refreshReversibleView ];
314308}
315309
316- - (UILabel *)label
317- {
310+ - (UILabel *)label {
318311 if ([self .itemView isKindOfClass: UILabel.class]) {
319312 return (UILabel *)self.itemView ;
320313 }
321-
314+
322315 return nil ;
323316}
324317
325- - (UIImageView *)imageView
326- {
318+ - (UIImageView *)imageView {
327319 if ([self .itemView isKindOfClass: UIImageView.class]) {
328320 return (UIImageView *)self.itemView ;
329321 }
330-
322+
331323 return nil ;
332324}
333325
334- - (void )setArrowImageReversed : (BOOL )reversed
335- {
326+ - (void )setArrowImageReversed : (BOOL )reversed {
336327 if (reversed) {
337328 self.arrowImageView .transform = CGAffineTransformRotate (CGAffineTransformIdentity, M_PI);
338329 return ;
0 commit comments