您的位置:首页 > 移动开发 > IOS开发

需求 - 13 - “左右中”

2015-12-13 17:43 477 查看
来看看下面这个例子:







这个例子中,我们可以选择Button的左右或者是没有,甚至可以左上到左下等等的选择式的样式。

这怎么选择呢? 嘻嘻,总结一下。

我们首先确定一个button 样式的枚举定义:

typedef NS_ENUM(NSUInteger, KGModalCloseButtonType){
KGModalCloseButtonTypeNone,
KGModalCloseButtonTypeLeft,
KGModalCloseButtonTypeRight
};

接着我们用这个NS_ENUM来定义一个属性,这个属性决定了样式:

@property (nonatomic) KGModalCloseButtonType closeButtonType;


然后在它的set方法里面写一个逻辑判断即可!
-(void)setCloseButtonType:(KGModalCloseButtonType)closeButtonType
{
_closeButtonType = closeButtonType;
if(closeButtonType == KGModalCloseButtonTypeNone){
[self.closeButton setHidden:YES];
}else{
[self.closeButton setHidden:NO];

CGRect closeFrame = self.closeButton.frame;
if(closeButtonType == KGModalCloseButtonTypeRight){
closeFrame.origin.x = round(CGRectGetWidth(self.containerView.frame)-kDefaultCloseButtonPadding-CGRectGetWidth(closeFrame)/2);
}else{
closeFrame.origin.x = 0;
}
self.closeButton.frame = closeFrame;
}
}

然后如果想“轮循”一遍可以这样写:
- (void)changeCloseButtonType:(id)sender{
UIButton *button = (UIButton *)sender;
KGModal *modal = [KGModal sharedInstance];
KGModalCloseButtonType type = modal.closeButtonType;

if(type == KGModalCloseButtonTypeLeft){
modal.closeButtonType = KGModalCloseButtonTypeRight;
[button setTitle:@"Close Button Right" forState:UIControlStateNormal];
}else if(type == KGModalCloseButtonTypeRight){
modal.closeButtonType = KGModalCloseButtonTypeNone;
[button setTitle:@"Close Button None" forState:UIControlStateNormal];
}else{
modal.closeButtonType = KGModalCloseButtonTypeLeft;
[button setTitle:@"Close Button Left" forState:UIControlStateNormal];
}
}

同理别的工程也经常可以看到这样的写法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS