| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- //
- // NSMutableArray+SWUtilityButtons.m
- // SWTableViewCell
- //
- // Created by Matt Bowman on 11/27/13.
- // Copyright (c) 2013 Chris Wendel. All rights reserved.
- //
- #import "NSMutableArray+SWUtilityButtons.h"
- @implementation NSMutableArray (SWUtilityButtons)
- - (void)sw_addUtilityButtonWithColor:(UIColor *)color title:(NSString *)title
- {
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- button.backgroundColor = color;
-
- [button setTitle:title forState:UIControlStateNormal];
- [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- [button.titleLabel setAdjustsFontSizeToFitWidth:YES];
- [self addObject:button];
- }
- - (void)sw_addUtilityButtonWithColor:(UIColor *)color attributedTitle:(NSAttributedString *)title
- {
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- button.backgroundColor = color;
- [button setAttributedTitle:title forState:UIControlStateNormal];
- [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- [self addObject:button];
- }
- - (void)sw_addUtilityButtonWithColor:(UIColor *)color icon:(UIImage *)icon
- {
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- button.backgroundColor = color;
- [button setImage:icon forState:UIControlStateNormal];
- [self addObject:button];
- }
- - (void)sw_addUtilityButtonWithColor:(UIColor *)color normalIcon:(UIImage *)normalIcon selectedIcon:(UIImage *)selectedIcon {
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- button.backgroundColor = color;
- [button setImage:normalIcon forState:UIControlStateNormal];
- [button setImage:selectedIcon forState:UIControlStateHighlighted];
- [button setImage:selectedIcon forState:UIControlStateSelected];
- [self addObject:button];
- }
- @end
- @implementation NSArray (SWUtilityButtons)
- - (BOOL)sw_isEqualToButtons:(NSArray *)buttons
- {
- buttons = [buttons copy];
- if (!buttons || self.count != buttons.count) return NO;
-
- for (NSUInteger idx = 0; idx < self.count; idx++) {
- id buttonA = self[idx];
- id buttonB = buttons[idx];
- if (![buttonA isKindOfClass:[UIButton class]] || ![buttonB isKindOfClass:[UIButton class]]) return NO;
- if (![[self class] sw_button:buttonA isEqualToButton:buttonB]) return NO;
- }
-
- return YES;
- }
- + (BOOL)sw_button:(UIButton *)buttonA isEqualToButton:(UIButton *)buttonB
- {
- if (!buttonA || !buttonB) return NO;
-
- UIColor *backgroundColorA = buttonA.backgroundColor;
- UIColor *backgroundColorB = buttonB.backgroundColor;
- BOOL haveEqualBackgroundColors = (!backgroundColorA && !backgroundColorB) || [backgroundColorA isEqual:backgroundColorB];
-
- NSString *titleA = [buttonA titleForState:UIControlStateNormal];
- NSString *titleB = [buttonB titleForState:UIControlStateNormal];
- BOOL haveEqualTitles = (!titleA && !titleB) || [titleA isEqualToString:titleB];
-
- UIImage *normalIconA = [buttonA imageForState:UIControlStateNormal];
- UIImage *normalIconB = [buttonB imageForState:UIControlStateNormal];
- BOOL haveEqualNormalIcons = (!normalIconA && !normalIconB) || [normalIconA isEqual:normalIconB];
-
- UIImage *selectedIconA = [buttonA imageForState:UIControlStateSelected];
- UIImage *selectedIconB = [buttonB imageForState:UIControlStateSelected];
- BOOL haveEqualSelectedIcons = (!selectedIconA && !selectedIconB) || [selectedIconA isEqual:selectedIconB];
-
- return haveEqualBackgroundColors && haveEqualTitles && haveEqualNormalIcons && haveEqualSelectedIcons;
- }
- @end
|