我有一个框架大小为(0,65,320,503)的桌面视图。当我导航到另一个页面然后我回来它向下移动。
答案 0 :(得分:3)
在 - (void)viewDidLoad方法中添加以下行。
self.automaticallyAdjustsScrollViewInsets = NO;
希望它能解决您的问题。
答案 1 :(得分:2)
我希望你找到一个适合你的解决方案。当使用AutoLayout和UITableViews以及精彩的SWRevealViewController类时,这种情况发生在我身上。长话短说我浪费了很多时间,最终发现这个答案对我有用:
https://stackoverflow.com/a/23021157/892990
我将UITableView移动到视图层次结构中的较低位置(通过在它和顶部布局指南之间放置一个虚拟的1pt厚的间隔UIView),现在它的行为符合预期。
答案 2 :(得分:0)
将此代码放在视图中,
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
[self.navigationController.navigationBar setTranslucent:NO];
并尝试删除自动布局。
希望这会有所帮助......
答案 3 :(得分:0)
我认为你需要再次在viewWillAppear方法中设置tableview的框架,因为在你的代码中你可以通过某种方式更改框架,所以只需在viewwillappear中设置它。
答案 4 :(得分:0)
在viewWillAppear
[your_tableview removeFromSuperview];
[your_tableview setTranslatesAutoresizingMaskIntoConstraints:YES];
your_tableview.frame = CGRectMake(0, 65, 320, 503);
[self.view addSubview:your_tableview];
如果您不想使用标题部分
,也可以尝试此操作your_tableview.tableHeaderView = nil;
答案 5 :(得分:0)
如果您使用的是故事板。
1>将导航栏的半透明属性设置为NO。再次调整子视图帧,因为在设置其NO后,子视图将使用一些新帧进行调整。
2 - ;在viewDidLoad中设置以下
self.automaticallyAdjustsScrollViewInsets = NO;
3>它完成了。