UITableView定位在UIView内部

时间:2014-07-11 19:34:24

标签: ios objective-c uitableview uiview

好的,所以我的问题听起来很愚蠢,因为坦率地说,确实如此。所以我正在使用的程序员决定将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)];

没有代码的尴尬差距:

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

RefreshControl Works

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

但这就是问题所在。此逻辑使刷新控件隐藏在导航栏后面。我意识到使用UITableviewController可以自然地解决这个问题。但是,既然我们已经在这个应用程序中使用了UIViewcontroller,我认为最好的举措就是坚持我们得到的东西。那么,如果没有隐藏在导航栏后面的刷新控件,我将如何恰当地定位这个UITableView列表?希望我能清楚地为每个人解释我的问题。

1 个答案:

答案 0 :(得分:1)

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

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