Masonry UIScrollView autolayout 的一个奇特的问题

事情是这样的。。。。

我一个工程里 一直使用的 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

  

posted @ 2015-01-14 21:31  Reddington  阅读(1213)  评论(0编辑  收藏  举报