需求 - 13 - “左右中”
2015-12-13 17:43
477 查看
来看看下面这个例子:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/31/c1a50a04f45c0799d75175b83fbd332a)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/31/4773eef903da342b9f96ea5a8f2918af)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/31/0238137654c6498cd9df3fd00d6e44f2)
这个例子中,我们可以选择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];
}
}
同理别的工程也经常可以看到这样的写法。
这个例子中,我们可以选择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];
}
}
同理别的工程也经常可以看到这样的写法。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器