iOS 控件定制iOS 开发每天分享优质文章

导航栏和滚动视图

2017-08-08  本文已影响29人  黑炭长

最近公司新上项目,在制作全局的导航控制器视图时用到了两种方法:
1、

[[UINavigationBar appearance] setTranslucent:NO];
[[UINavigationBar appearance] setBarTintColor:[UIColor fangBlueColor]];

2、

 [[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"顶部栏.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:10] forBarMetrics:UIBarMetricsDefault];

设置之后都可以达到滚动视图是从导航栏下端开始的,但是出现了新的问题,在创建tableView的时候有两种方法
1、

- (UITableView *)myTableView{
    
    if (!_myTableView) {
        _myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
        _myTableView.backgroundColor = [UIColor whiteColor];
        _myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        _myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _myTableView.delegate = self;
        _myTableView.dataSource = self;
    }
    return _myTableView;
}

2、

- (UITableView *)myTableView{
    
    if (!_myTableView) {
        _myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-64) style:UITableViewStylePlain];
        _myTableView.backgroundColor = [UIColor whiteColor];
//        _myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        _myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _myTableView.delegate = self;
        _myTableView.dataSource = self;
    }
    return _myTableView;
}

正常视图


屏幕快照 2017-08-08 下午3.14.59.png

请注意上述两种构建视图的方法,第一种若是让视图自适应上下左右的间距,必须使视图的frame为self.view.bounds。第二种若是视图的frame这么写必须注释掉autoresizingMask属性的值,否则就会出现如下的视图

有问题视图


屏幕快照 2017-08-08 下午3.16.50.png

上述视图底部的蓝色是self.view的视图,tableView没能充满视图;

再此做个记录!

上一篇下一篇

猜你喜欢

热点阅读