Masonry UIScrollView autolayout 的一个奇特的问题
2015-01-14 21:31
447 查看
事情是这样的。。。。
我一个工程里 一直使用的 masonry 做autolayout,有个gesturerReconizer的bug,找了很久,发现很奇怪一个现象:
我的某个view 是这样的
|--------------------------------------|
|UIViewController.view |
| |----------| |--------------------|
| |UIView1-| |UIScrollView |
| |----------| | |
| | |-------------| |
| | | UIView2 | |
| | |-------------| |
| |--------------------|
|------------------------------------------
UIScrollView 的 contentView 就略去了
按理说,我应该添加view2到 uiscrollview里,但是不小心写错了,加到了最外层的view里:
然后添加了若干constraint
关键是,一开始竟然一切顺利,跑成功了!!!!位置也对,就像我把它加入进了 scrollView里一样,还能顺着滑动!!
但是我用 原始的 addConstraint:xxx option 就会有很多unsatisfied constraint的msg产生。。。
但是这个view2的tap事件处理一直有问题。
两个理解:
1. 虽然view的层级不对,但是constaint是可以满足的,当scroll的时候,其依赖的view的位置变了,所以它跟着滑动
2.系统bug
我一个工程里 一直使用的 masonry 做autolayout,有个gesturerReconizer的bug,找了很久,发现很奇怪一个现象:
我的某个view 是这样的
|--------------------------------------|
|UIViewController.view |
| |----------| |--------------------|
| |UIView1-| |UIScrollView |
| |----------| | |
| | |-------------| |
| | | UIView2 | |
| | |-------------| |
| |--------------------|
|------------------------------------------
UIScrollView 的 contentView 就略去了
按理说,我应该添加view2到 uiscrollview里,但是不小心写错了,加到了最外层的view里:
[self.view addSubview:self.view2];
然后添加了若干constraint
[self.view2 makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.orderSectionView.bottom).offset(14); make.height.equalTo(@200); make.left.and.right.equalTo(_rightDownScrollContentView); }];
关键是,一开始竟然一切顺利,跑成功了!!!!位置也对,就像我把它加入进了 scrollView里一样,还能顺着滑动!!
但是我用 原始的 addConstraint:xxx option 就会有很多unsatisfied constraint的msg产生。。。
但是这个view2的tap事件处理一直有问题。
两个理解:
1. 虽然view的层级不对,但是constaint是可以满足的,当scroll的时候,其依赖的view的位置变了,所以它跟着滑动
2.系统bug
相关文章推荐
- UIScrollView中嵌入一个UITableView,使用Masonry来写Autolayout的demo
- Autolayout---UIScrollView的一些问题
- [问题记录]AutoLayout下UIScrollView 布局错位及解决方法
- UIScrollView 使用AutoLayout布局遇到的问题
- 在storyboard或者xib中使用autolayout对UIScrollView进行布局需要注意的问题
- 如何在 AutoLayout 中使用 UIScrollView (多个ContentView)
- IOS UIScrollView注意要点(AutoLayout情况)
- Using UIScrollView with Auto Layout in iOS
- AutoLayout UIScrollView
- AutoLayout自定义tableViewCell --- Masonry + UITableView+FDTemplateLayoutCell 纯代码实现
- 示例详解:UIScrollview 与 Autolayout 的那点事
- Autolayout UIScrollView
- 通过View.post()获取View的宽高引发的两个问题:1post的Runnable何时被执行,2为何View需要layout两次;以及发现Android的一个小bug
- Using UIScrollView with Auto Layout in iOS
- 在UIScrollView中使用Autolayout布局(2)
- Autolayout下的UIScrollView的适配
- 在UIScrollView中使用Auto Layout中的VFL(Visual format language)
- 示例详解:UIScrollview 与 Autolayout 的那点事