好吧,我的问题听起来很愚蠢,因为坦率地说,是。因此,与我一起工作的程序员决定将UITablViewController放在UIView内。问题在于,这是在整个应用程序中完成的,并且在实施过程中已经很遥远了。我将刷新控件放置到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)];


没有代码的尴尬缺口:

//////////////////

刷新控制工程

/////////////////

但这就是问题所在。此逻辑使刷新控件隐藏在导航栏的后面。我意识到使用UITableviewController自然可以解决此问题。但是,由于到目前为止我们在此应用程序中已经使用了UIViewcontroller,所以我认为最好的方法就是坚持我们所得到的东西。那么,如何在不将刷新控件隐藏在导航栏后面的情况下,适当地放置此UITableView列表呢?希望我为大家清楚地解释了我的问题。

最佳答案

听起来您遇到了UIScrollView遇到的问题。不幸的是,放置UIScrollView使其最接近NavigationBar时,这是一个错误。它将自动按UINavBar的高度插入滚动视图。因此,我发现的唯一真正的解决方案是:

[myView setContentInset:UIEdgeInsetsMake(-self.navigationController.navigationBar.frame.size.height, 0, 0, 0)];

09-27 17:26