zoukankan      html  css  js  c++  java
  • 学习制作iOS程序第六天:我的页面-主页面(19)

    十九、我的页面 - 主页面

    刚完成了首页推荐二手房这个很麻烦的东西,来点轻松的吧。先做后台我的页面把。

    第一版不涉及到客户的登录注册操作,所以相对来说比较简单一点。主要是系统自带的tableview的使用。

    也是因为没有客户的登录等操作,所以一些查看记录是保存在本地的。如果卸载了app再重新安装是为空的。

    1、.h文件创建变量

    #import <UIKit/UIKit.h>
    
    @interface RDMyTableViewController : UIViewController
    
    @property(nonatomic,strong) UITableView *tableView;
    @property(strong,nonatomic) UIImageView *zoomImageView;
    
    @end

    2、m文件之tableview

    (1)定义数据变量并加载delegate

    @interface RDMyTableViewController ()<UITableViewDataSource,UITableViewDelegate>
    {
        NSArray *arrList;
    }
    @end

    (2)tableview初始化

        //初始化我的信息
        arrList =
    @[
        @[
            [NSMutableDictionary dictionaryWithObjectsAndKeys:@"我看过的房源",@"title",@"icon_viewhistory",@"image",@"1",@"isshow",nil],
            [NSMutableDictionary dictionaryWithObjectsAndKeys:@"我关注的新房",@"title",@"icon_focus_house",@"image",@"1",@"isshow",nil],
            [NSMutableDictionary dictionaryWithObjectsAndKeys:@"我关注的二手房/租房",@"title",@"icon_focus_house",@"image",@"1",@"isshow",nil]
        ],@[
            [NSMutableDictionary dictionaryWithObjectsAndKeys:@"购房计算器",@"title",@"icon_jisuanqi",@"image",@"1",@"isshow",nil]
        ],@[
            [NSMutableDictionary dictionaryWithObjectsAndKeys:@"设置",@"title",@"icon_setup",@"image",@"1",@"isshow",nil],
        ]
    ];
        
        //初始化tableview
        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, self.navigationController.navigationBar.frame.size.height+20, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStyleGrouped];
        self.tableView.delegate=self;
        self.tableView.dataSource = self;
        self.tableView.contentInset = UIEdgeInsetsMake(BGIMAGEHEIGHT, 0, 0, 0);
        self.tableView.rowHeight=46.0f;
        [self.view addSubview:self.tableView];
        
        //定义复用的cell
        [self.tableView registerClass:[SetupListCell class] forCellReuseIdentifier:@"setuplistcell"];

    (3)tableview的委托方法

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return arrList.count;
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        NSArray *arrSection = arrList[section];
        return arrSection.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"setuplistcell" forIndexPath:indexPath];
        NSArray *arrSection = arrList[indexPath.section];
        NSDictionary *dictData = arrSection[indexPath.row];
        
        cell.textLabel.text = [dictData objectForKey:@"title"];
        cell.imageView.image=[UIImage imageNamed:[dictData objectForKey:@"image"]];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        
        return cell;
    }
    -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    {
        return 0.1f;
    }
    -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
    {
        return 10.0f;
    }

    (4)tableview单元格点击事件 部分函数待实现

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        [tableView deselectRowAtIndexPath:indexPath animated:NO];
        if(indexPath.section==0)
        {
            if (indexPath.row==0) {
                #warning 待定代码 我看过的房源
                //我看过的房源
            }else if (indexPath.row==1)
            {
                #warning 待定代码 我关注的新房
                //我关注的新房
            }else if (indexPath.row==2)
            {
                #warning 待定代码 我关注的二手房
                //我关注的二手房
            }
        
        }else if(indexPath.section==1)
        {
            if (indexPath.row==0) {
                #warning 待定代码 房贷计算器
                //房贷计算器
            }
        }else if(indexPath.section==2)
        {
            if (indexPath.row==0) {
                //设置
                RDSetupViewController *setupvc = [[RDSetupViewController alloc]init];
                self.navigationItem.backBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:nil action:nil];
                [self.navigationController pushViewController:setupvc animated:NO];
            }
        }
    }

    (5)uitableviewcell没有用默认的系统cell,稍微做了一点改动,名字是SetupListCell

    #import "SetupListCell.h"
    
    @implementation SetupListCell
    
    - (void)awakeFromNib {
        // Initialization code
    }
    
    
    //重写layoutSubviews方法,以便实现图片大小效果
    -(void)layoutSubviews
    {
        [super layoutSubviews];
        self.imageView.frame=CGRectMake(15, (self.frame.size.height-20)/2, 20, 20);
        self.imageView.contentMode=UIViewContentModeScaleAspectFit;
        CGRect tempframe = self.textLabel.frame;
        tempframe.origin.x=50;
        self.textLabel.frame=tempframe;
        self.textLabel.font=[UIFont systemFontOfSize:14];
        self.separatorInset=UIEdgeInsetsMake(0, 50, 0, 0);
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    @end

    3、.m文件之下拉放大图。

    (1)定义宏变量

    #define BGIMAGEHEIGHT 160.0f

    (2)初始化图片view

        //初始化缩放图片
        self.zoomImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, -BGIMAGEHEIGHT, SCREEN_WIDTH, BGIMAGEHEIGHT)];
        self.zoomImageView.image = [UIImage imageNamed:@"main_my_bg"];
        self.zoomImageView.contentMode = UIViewContentModeScaleAspectFill;
        [self.tableView addSubview:_zoomImageView];

    (3)scroll触发方法

    #pragma mark scrollview滚动事件
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        //当滚动的时候缩放图片
        CGFloat y = self.tableView.contentOffset.y;
        if (y<=BGIMAGEHEIGHT)
        {
            CGRect frame=_zoomImageView.frame;
            frame.origin.y = y;
            frame.size.height = -y;
            _zoomImageView.frame = frame;
        }
        
    }

    看看效果。

     

  • 相关阅读:
    LF.25.K Smallest In Unsorted Array
    LC.102. Binary Tree Level Order Traversal
    LF.236.Search Insert Position
    发生错误 1069 sqlserver
    manualresetevent的用法学习
    xml selectnodes
    Flask 路由 , 初始化 , 配置Config , 蓝图BluePrint , 装饰器
    Python垃圾回收机制
    Odoo 动作Action
    Odoo 权限简介
  • 原文地址:https://www.cnblogs.com/randytech/p/5038848.html
Copyright © 2011-2022 走看看