我的问题听起来很傻,因为坦率地说,它确实很傻。所以我正在工作的程序员决定在一个UIView里面放置一个uitableviewcontroller。问题在于,这是贯穿整个应用的,并且在执行过程中已经走得很远了。我在UITableviewController上放置了一个刷新控件,如下所示:
[self.categoryList addSubview:self.refreshControl];
这就是我的问题开始出现的地方。没有下面的逻辑,UITableView移到下面(刷新控件是完全可见的)。但是,如果我不使用这段代码,就会出现一个尴尬的空白:(但是要强调的是,没有这个逻辑,刷新控件是完全可见的。)
if([[UIDevice currentDevice].systemVersion floatValue]>=7.0)
[self.categoryList setFrame:CGRectMake(0, -18, 320, self.categoryList.frame.size.height+35)];
没有代码的尴尬空白:
//////////////////
RefreshControl作品
/////////////////
但问题来了。这个逻辑使得刷新控件隐藏在导航条后面。我意识到使用UITableviewController自然修复了这个问题。但是,因为我们到目前为止在这个应用中已经使用了UIViewcontroller,我认为最好的做法是坚持我们得到的。如果没有隐藏在导航栏后面的刷新控件我该如何恰当地定位这个UITableView列表呢?希望我给大家解释清楚了我的问题。
听起来你遇到了我在UIScrollView
s中遇到的问题。不幸的是,这是一个bug,当一个UIScrollView
被放置,这样它是最接近NavigationBar
。它将自动通过UINavBar
的高度插入滚动视图。所以我找到的唯一真正的解决方案是:
[myView setContentInset:UIEdgeInsetsMake(-self.navigationController.navigationBar.frame.size.height, 0, 0, 0)];