首先是层次问题, 我的storyboard中 底层是一个View(viewcontroller自带)上面添加了一个UIScrollview(添加约束, 上下左右全为0), 在UIScrollview上添加一个UITableView(添加约束: 上下左右全为0, 宽高分别为当前值, 做拖出宽高的约束, 添加到代码中, 设置可以改变他们的值)
①. 只有UIScrollview的情况, 这时只要把上面约束的宽高分别设下, 分别是[UIScreen mainScreen].bounds.size.width............ [UIScreen mainScreen].bounds.size.height就可以运行了
②. 添加一个UINavigation, 这时根据上面的情况, 只要把高修改成[UIScreen mainScreen].bounds.size.height - 64 (UINavigationBar和StatusBar的高度是64)
③. 去掉UINavigation, 添加一个UITabbarViewController, 把高修改成[UIScreen mainScreen].bounds.size.height - 49(Tabbar的高度是49)
④. 同时添加UInavigation和UITabbarViewController, 这时把高修改成[UIScreen mainScreen].bounds.size.height - 49 - 64, 同时要把上面的UITableView的约束修改下, 我们当时添加的约束是上下左右全为0, 修改下方的为-49, 这样就行了
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGPoint scrollViewOffset = scrollView.contentOffset; CGRect bounds = scrollView.bounds; CGSize size = scrollView.contentSize; // NSLog(@"size::%@", [NSValue valueWithCGSize:size]); UIEdgeInsets inset = scrollView.contentInset; CGFloat y = scrollViewOffset.y + bounds.size.height - inset.bottom; CGFloat h = size.height; // NSLog(@"%lf,,,,,%lf", y, h); if (y > h - 30) { } UIScrollView* mysc = (UIScrollView *)scrollView.superview; CGPoint scrollViewOffset1 = mysc.contentOffset; CGRect bounds1 = mysc.bounds; CGSize size1 = mysc.contentSize; UIEdgeInsets inset1 = mysc.contentInset; CGFloat y1 = scrollViewOffset1.y + bounds1.size.height - inset1.bottom; CGFloat h1 = size1.height; NSLog(@"%lf,,,,,%lf", y1, h1); }
时间: 2024-10-29 19:05:30