设置导航栏透明,tableview不能下拉,并默认起点(0,0),页面消失后导航栏还原

本文介绍了一个iOS应用中个人中心页面的设计与实现过程,包括使用Masonry进行布局、UITableView的定制化显示及交互处理等内容。

//

//  MineViewController.m

//


#import "MineViewController.h"

#import "ConstantHeader.h"

#import <Masonry/Masonry.h>

#import "MineTableViewCell.h"



@interface MineViewController ()<UITableViewDelegate,UITableViewDataSource>


@property(nonatomic,strong) UITableView *myTableView;

@property(nonatomic,strong) NSMutableArray<NSString *> *dataArr;


@property(nonatomic,strong) UIButton *guanZhuBtn;

@property(nonatomic,strong) UIButton *fenSiBtn;

@property(nonatomic,strong) UILabel *beiZhanBtn;

@property(nonatomic,strong) UILabel *beiShouCangBtn;


@end


@implementation MineViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    self.navigationController.navigationBar.translucent = YES;

    

    self.myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

    [self.view addSubview:self.myTableView];

    [self.myTableView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.center.mas_equalTo(self.view);

        make.size.mas_equalTo(self.view);

    }];

    self.myTableView.delegate = self;

    self.myTableView.dataSource = self;

    self.myTableView.estimatedRowHeight = 40;

    self.myTableView.rowHeight = UITableViewAutomaticDimension;

    self.myTableView.backgroundColor = NORMAL_BKG_GREY;

    [self.myTableView registerClass:[MineTableViewCell class] forCellReuseIdentifier:@"MineTableViewCell"];

    

    //设置tableview偏移置顶

    self.myTableView.contentOffset = CGPointMake(0.0, 0.0);

    

    UIView *hView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_SIZE_WIDTH, 180)];

    UIView *headerBkgView = [[UIView alloc]init];

    [hView addSubview:headerBkgView];

    [headerBkgView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.top.mas_equalTo(0);

        make.left.mas_equalTo(0);

        make.width.mas_equalTo(SCREEN_SIZE_WIDTH);

        make.height.mas_equalTo(200);

    }];

    headerBkgView.backgroundColor = MAIN_THEME_COLOR;

    

    UIImageView *headImgv = [[UIImageView alloc]init];

    [headerBkgView addSubview:headImgv];

    [headImgv mas_makeConstraints:^(MASConstraintMaker *make) {

        make.centerX.mas_equalTo(headerBkgView.mas_centerX);

        make.top.mas_equalTo(headerBkgView.mas_top).mas_offset(35);

        make.size.mas_equalTo(CGSizeMake(85, 85));

    }];

    headImgv.layer.cornerRadius = 85/2;

    headImgv.layer.masksToBounds = YES;

    headImgv.backgroundColor = [UIColor whiteColor];

    

    //名字

    UILabel *nameLabel = [[UILabel alloc]init];

    [headerBkgView addSubview:nameLabel];

    [nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {

        make.top.mas_equalTo(headImgv.mas_bottom).mas_offset(TEXT_LINE_DISTANCE);

        make.centerX.mas_equalTo(headImgv.mas_centerX);

        make.left.mas_equalTo(TEXT_EDGE_DISTANCE);

        make.width.mas_greaterThanOrEqualTo(5);

        make.height.mas_lessThanOrEqualTo(35);

    }];

    nameLabel.font = MIDDLE_SECOND_FONT;

    nameLabel.textColor = [UIColor whiteColor];

    nameLabel.text = @"哈哈哈哈";

    nameLabel.textAlignment = NSTextAlignmentCenter;

    

    //地址

    UILabel *addressL = [[UILabel alloc]init];

    [headerBkgView addSubview:addressL];

    [addressL mas_makeConstraints:^(MASConstraintMaker *make) {

        make.top.mas_equalTo(nameLabel.mas_bottom).mas_offset(TEXT_LINE_DISTANCE);

        make.centerX.mas_equalTo(headImgv.mas_centerX).mas_offset(10);

        make.left.mas_greaterThanOrEqualTo(TEXT_LINE_DISTANCE+15);

        make.width.mas_greaterThanOrEqualTo(5);

    }];

    

    addressL.font = LITTLE_FONT;

    addressL.textColor = [UIColor whiteColor];

    addressL.text = @"黑龙江省佳木斯市";

    

    //图标

    UIImageView *addressIcon = [[UIImageView alloc]init];

    [headerBkgView addSubview:addressIcon];

    [addressIcon mas_makeConstraints:^(MASConstraintMaker *make) {

        make.centerY.mas_equalTo(addressL.mas_centerY);

        make.right.mas_equalTo(addressL.mas_left).mas_offset(-5);

        make.size.mas_equalTo(CGSizeMake(15, 15));

    }];

    addressIcon.image = [UIImage imageNamed:@"temp_address"];

    

    [headerBkgView mas_remakeConstraints:^(MASConstraintMaker *make) {

        make.top.mas_equalTo(0);

        make.left.mas_equalTo(0);

        make.width.mas_equalTo(SCREEN_SIZE_WIDTH);

        make.height.mas_equalTo(200);

    }];

    

    //指定tableHeaderView 

    CGFloat height = [headerBkgView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

    CGRect frame = headerBkgView.frame;

    frame.size.height = height;

    headerBkgView.frame = frame;

    self.myTableView.tableHeaderView = headerBkgView;

    


    self.dataArr = [@[@"我的厘米",@"收益统计",@"代金券",@"排行榜",@"我的搜藏",@"地址管理",@"客服",@"消息中心",@"我的笔记"] mutableCopy];


}


-(void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    //统一导航样式

    [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];

    

    //去掉透明后导航栏下边的黑边

    [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];


}


-(void)viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:animated];

    //统一导航样式

    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

    [self.navigationController.navigationBar setShadowImage:nil];


}


//设置tableview不能下拉

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    

    CGPoint point = scrollView.contentOffset;

    if (point.y <= 0) {

        self.myTableView.contentOffset = CGPointMake(0.0, 0.0);

    }

}


#pragma mark -----tableView代理事件-----

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 1;

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return self.dataArr.count;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    if (indexPath.row == 8) {

        MineTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MineTableViewCell" forIndexPath:indexPath];


        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

        cell.titleTextL.text = self.dataArr[indexPath.row];

        cell.titleImgv.image = [UIImage imageNamed:@"temp_dianzan_red"];

        

        return cell;

        

    }else {

        MineTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MineTableViewCell" forIndexPath:indexPath];

        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

        cell.titleTextL.text = self.dataArr[indexPath.row];

        cell.titleImgv.image = [UIImage imageNamed:@"temp_dianzan_red"];

        return cell;

    }

}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    if (indexPath.row == 8) {

    //跳转我的笔记

        

    }else {

        

    }



}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值