这是一次由于使用了IQKeyBoardManager引起的NavigationBar向上移动而使用UIScrollView并且引起了contentSize设置不上的问题.
1:关于UIScrollView自身的约束(长,宽,高等等),可以向其他的view一样设置,但是其子试图的约束也同样可以像其他view一样设置,注意了:在
viewDidAppear:(BOOL)animated
方法中,UIScrollView的contentSize会根据这些子试图的约束来计算.所以不管你在
viewDidLoad
怎么设置UIScrollView的contentSize都是没有任何作用的,需要自己重写viewDidApper方法,
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
///如果手机是 iPhone5/iPhone5s 那么就让ScrollView可以滚动,
if (iPhone5) {
CGFloat addBankCardButtonY = CGRectGetMaxY(self.addBankCardButton.frame);
self.mainScrollView.contentSize = CGSizeMake(0, addBankCardButtonY + 50);
}else{ ///否则,就不让ScrollView滚动
self.mainScrollView.contentSize = CGSizeMake(0, 0);
}
}
上述代码中的mainScrollView就是从XIB里面拖出来的ScrollView
这样既解决了IQKeyBoardManager引起的NavigationBar上移,也解决了UIScrollView的contentSize没法设置的问题