TableView自动上移

本文探讨了解决iOS开发中tableView或collectionView自动上移的问题,提供了两种解决方案:一是关闭tableView的自动适配布局;二是利用UIViewController的edgesForExtendedLayout属性进行调整。
- (void)viewWillLayoutSubviews {

    if (self.view.subviews[0] != self.tableView) {
        //self.tableView是我们希望正常显示cell的视图
        self.tableView.subviews[0].frame = CGRectMake(064, kScreenW, kScreenH);
    } 
}

/*或者设置 tableView的y : 64*/
//如果navigationbar.translucent = YES; scrollview会被自动设置contentInset.top=64

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
    _tableView.contentInset = UIEdgeInsetsZero;
    _tableView.scrollIndicatorInsets = UIEdgeInsetsZero;
}

方案一 

在使用了navigationController后,当界面进行跳转往返后,时而会出现tableView或collectionView上移的情况,通常会自动上移64个像素,那么这种情况,我们可以关闭tableView的自动适配布局。 

self.automaticallyAdjustsScrollViewInsets = NO;// 默认是YES 

方案二:

当出现tableView整体上移时,你当然可以在 Xcode 中修改每个 View,将他们下移20个像素(状态栏高度)或者64个像素(状态栏+导航栏高度)。

但是苹果显然已经考虑到这个问题,他们早在 iOS 7 SDK 中为 ViewController 提供了一个 edgesForExtendedLayout 新属性。如果你将这个属性设置为UIRectEdgeNone,则 viewController 的所有子视图都会自动调整。 

目前暂时也适用于不同系统版本代码更迭出现状况时使用。 

 

self.edgesForExtendedLayout = UIRectEdgeNone;// 推荐使用 

 

转载于:https://www.cnblogs.com/StevenHuSir/p/9687650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值