UIView中的clipsTobounds属性及扩展
2015-11-12 17:28
549 查看
最近在写一个项目的时候,遇到了一个问题:在一个视图中动态添加一个子视图,并在子视图中添加一个UIButton, 运行后发现虽然在界面上可以看到这个buton,但是点击这个按钮的时候按钮却没响应,纠结了很久也没发现是什么问题,代码如下:
[cpp] view
plaincopy
UIView *view = [UIView alloc] init];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 20, 50, 30);
[button setTitle:@"click" forState:UIControlStateNormal];
[button addTarget:self action:@selector(clickMe:) orControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];
[self.view addSubView:view];
后来在网上找了些资料,发现UIView有一个clipsTobounds的属性,于是吧view.clipsTobounds设置为YES, 发现界面上button看不见了,继续看了些clipsTobounds的资料,原来是button的frame超出了view的frame的范围(即button的坐标超出view的frame了), clipsTobounds默认值是NO,
即超出范围后依然可以显示,但是超出范围这部分是无法响应触摸事件的,把 clipsTobounds设置为YES后,超出范围这部分的内容就不会再显示了。在上面的代码中给view设置一个frame后,button的响应就正常了。
以下是clipsTobounds的说明图(借用别人的图), 图中是把view2添加到view1中, 且view2有部分超出了view1的frame:
clipsTobounds = NO时(默认值)
clipsTobounds = YES时
[cpp] view
plaincopy
UIView *view = [UIView alloc] init];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 20, 50, 30);
[button setTitle:@"click" forState:UIControlStateNormal];
[button addTarget:self action:@selector(clickMe:) orControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];
[self.view addSubView:view];
后来在网上找了些资料,发现UIView有一个clipsTobounds的属性,于是吧view.clipsTobounds设置为YES, 发现界面上button看不见了,继续看了些clipsTobounds的资料,原来是button的frame超出了view的frame的范围(即button的坐标超出view的frame了), clipsTobounds默认值是NO,
即超出范围后依然可以显示,但是超出范围这部分是无法响应触摸事件的,把 clipsTobounds设置为YES后,超出范围这部分的内容就不会再显示了。在上面的代码中给view设置一个frame后,button的响应就正常了。
以下是clipsTobounds的说明图(借用别人的图), 图中是把view2添加到view1中, 且view2有部分超出了view1的frame:
clipsTobounds = NO时(默认值)
clipsTobounds = YES时
相关文章推荐
- UIScrollView
- Maltab gui 使用函数学习记录
- UITableView分割线式样 与 颜色设置
- UICollectionView 简单使用
- [ios]如何分组具有 UICollectionReusableView (使用 JSON) 的单元格
- 当UIScrollView 遇到 autolayout
- Elasticsearch Query String Query
- UIImage旋转详解
- GUI布局学习1
- UIScrollView上面添加的控件偏移
- easyui获取时间出错
- 实现加大UIButton/UITextField 的点击范围
- AndroidUI中gravity属性的运用
- 自定义UITableViewCell 上的多个按钮点击事件处理
- Github学习笔记2- Repository & Issue
- java,arduino,C#之间的一些编码转换
- iOS之UI高级---如何理解图文混排
- String、StringBuffer与StringBuilder之间区别
- js-QuickStart-base.js
- ios UIScrollView不能响应TouchesBegin:的事件的解决办法