UITableView在UIView中的定位



我的问题听起来很傻,因为坦率地说,它确实很傻。所以我正在工作的程序员决定在一个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)];

最新更新