iOS学习之UiTableView仿个人中心页面,据说学会这个控件就能装逼了

苹果电脑真心不习惯啊,一边开发使windows一边是Mac 都不知道按键盘哪个键了。这UiTableView根android ListView一样重要,等学会这个以后我就出去装逼,但愿装逼不要被大神鄙视,哎,没办法,半路出家,谁让我大学学的机械专业,还这么笨的!如果人生能出来,我要当富二代!好了,不多说了,看贱:不对,看图:

卧槽,咋这么大,不管了,男人不都喜欢大吗?

看代码: .h文件里面没东西的我就不贴了:

这是主要代码:

得实现两个协议,根android里面的接口差不多:

UITableViewDataSource

UITableViewDelegate

//
//  MyUiTabview.m
//  MyUItableView
//
//  Created by xiaoyuan on 15/4/24.
//  Copyright (c) 2015年 xiaoyuan. All rights reserved.
//

#import "MyUiTabview.h"
#import "MyCellTableViewCell.h"

@interface MyUiTabview ()<UITableViewDataSource,UITableViewDelegate>
{
    UITableView*my;
    UIImageView*head;
    UILabel*name;
    int TB_SECTION_COLLECT;
    int TB_SECTION_UPDATA;
    int TB_SECTION_SETTING;
    int TB_SECTION_QUIT;

    int totalSectionCount;
}
@property(retain,nonatomic) NSArray*titles;
@property(retain,nonatomic) NSArray*pic;

@end

@implementation MyUiTabview
@synthesize titles;
@synthesize pic;
- (void)viewDidLoad {
    [super viewDidLoad];

    //加navigationController 不透明
    // Do any additional setup after loading the view.
    self.view.backgroundColor =[UIColor whiteColor];
    self.navigationController.navigationBar.barTintColor =[UIColor redColor];
    [self.navigationController.navigationBar setTranslucent:NO];
    UILabel *title =[[UILabel alloc] initWithFrame:CGRectZero];
    title.textAlignment = NSTextAlignmentCenter;
    title.textColor = [UIColor whiteColor];
    title.backgroundColor =[UIColor clearColor];
    self.navigationItem.titleView = title;
    [email protected]"个人中心";
    [title sizeToFit];
    [self iniview];
    my = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    my.backgroundColor =[UIColor whiteColor];
    my.separatorStyle = UITableViewCellEditingStyleNone;
    [self.view addSubview:my];
    my.delegate = self;
    my.dataSource =self;
    [self populateTableHeader];

}
//初始化数据
-(void)iniview{

    totalSectionCount = 4;

    TB_SECTION_COLLECT = 0;
    TB_SECTION_UPDATA = 1;
    TB_SECTION_SETTING = 2;
    TB_SECTION_QUIT = 3;
    [self setTitles:@[@[@"摇一摇",@"朋友圈",@"设置"],@[@"个人中心"],@[@"微信"]]];
    [self setPic:@[@[@"",@"",@""],@[@""],@[@""]]];

}
//加头

-(void)populateTableHeader {
    my.tableHeaderView = ({
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 120.0f)] ;
        head =[[UIImageView alloc]init];
        head.image=[UIImage imageNamed:@"default_avatar_shadow.9.png"];

        head.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
        head.frame = CGRectMake(0, 10, 80, 80);
        head.layer.masksToBounds = YES;
        head.layer.cornerRadius = 40.0;
        head.layer.borderColor = [UIColor whiteColor].CGColor;
        head.layer.borderWidth = 3.0f;
        head.layer.rasterizationScale = [UIScreen mainScreen].scale;
        head.layer.shouldRasterize = YES;
        head.clipsToBounds = YES;
        [view addSubview:head];

        head.userInteractionEnabled = YES;
        UITapGestureRecognizer *singleTap =  [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onUserFaceIvClick)];
        [singleTap setNumberOfTapsRequired:1];
        [head addGestureRecognizer:singleTap];

        int ypos = 120;
        int screenWidth = self.view.frame.size.width - 2 * 6;
        UILabel * nameLb = [[UILabel alloc] initWithFrame:CGRectMake(85, 30, 200, 200)];
        nameLb.text = @"逗比";
        nameLb.font = [UIFont systemFontOfSize:15];
        nameLb.textAlignment = NSTextAlignmentCenter;
        [view addSubview:nameLb];
        nameLb.userInteractionEnabled = YES;
        singleTap =  [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onUserNameClick)];
        [singleTap setNumberOfTapsRequired:1];
        [nameLb addGestureRecognizer:singleTap];
        ypos += 6 + 10;
        ypos += 40;
        CGRect frame = view.frame;
        frame.size.height = ypos;
        view.frame = frame;
        view;
    });
}

//加分割线
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

        UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 520, 30)];
        view.backgroundColor = [UIColor grayColor];
        return view;

}

//分割线宽度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{

    return 12;
}

//每个分组有多少行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if(TB_SECTION_COLLECT == section) {
        return titles.count;
    }
    else {
        return 1;
    }

}
//相当于getview
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellIdentifier = @"Cell";

    MyCellTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[MyCellTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    if(indexPath.section < TB_SECTION_QUIT) {
        [cell populate:[[self.pic objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] title:[self.titles[indexPath.section] objectAtIndex:indexPath.row] height:44 style:MCC_STYLE_NORMAL];
        if (indexPath.section == TB_SECTION_COLLECT) {
            UIView *footView = [[UIView alloc] initWithFrame:CGRectMake(0,44, 400, 1)];
            footView.backgroundColor =[UIColor grayColor];
            [cell addSubview:footView];
        }

    }

    return cell;
}
//一共有多少行
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return totalSectionCount;

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

下面是自定义的cell,这个就是item,这苹果的算坐标给我算迷糊的,都不知道哪是哪来,话说苹果手机的屏幕是多大的啊,我都不知道,谁让我不是富二代哪,也买不起苹果手机,你说整个Mac咋买的啊,这个应该从85年就开始攥钱,得从这说起,那是一个非常黑,非常静的夜晚,就说月黑风高,我翻墙闯进了李寡妇家,抢了2元钱,这为我买Mac注资了第一桶金,哎,也不知道现在李寡妇现在什么样了,好怀念跟隔壁老王一起玩耍的日子啊!如果我人生要是能重来,我就学文,我就当官去,贪污,出国,然后被遣送回国,哈哈,不扯来,贴代码了!

</pre><pre name="code" class="objc">//  MyCellTableViewCell.m
//  MyUItableView
//
//  Created by xiaoyuan on 15/4/24.
//  Copyright (c) 2015年 xiaoyuan. All rights reserved.
//

#import "MyCellTableViewCell.h"
@interface MyCellTableViewCell(){

}

@property (retain,nonatomic) UILabel *title;
@property(retain,nonatomic) UILabel *back;
@end

@implementation MyCellTableViewCell
@synthesize title;
@synthesize back;
@synthesize icon;
static int iconsize = 24;

- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{

    self  = [super  initWithStyle:style reuseIdentifier:reuseIdentifier];

    if(self){

        icon  =[[UIImageView alloc] initWithFrame:CGRectMake(6 , (54-iconsize)/2, iconsize, iconsize)];

        [self.contentView addSubview:icon];
        title =[[UILabel alloc] initWithFrame:CGRectMake(6*2+iconsize, 22, 1000,44)];
        title.font =[UIFont systemFontOfSize:15];
        [self.contentView addSubview:title];

    }

    return self;

}

-(void)populate:(NSString *)iocn title:(NSString *)title height:(int)height style:(int)styles{

    self.icon.hidden = NO;
    self.title.hidden = NO;
    CGRect frame = self.title.frame;
    frame.origin.y = (height-40) / 2;
    self.title.frame = frame;

    self.title.text = title;

}

@end
//
//  MyCellTableViewCell.h
//  MyUItableView
//
//  Created by xiaoyuan on 15/4/24.
//  Copyright (c) 2015年 xiaoyuan. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface MyCellTableViewCell : UITableViewCell

#define MCC_STYLE_NORMAL 0
#define MCC_STYLE_QUIT_BTN 100

@property(strong,nonatomic) UIImageView *icon;
//定义方法
-(void ) populate:(NSString*) iocn title:(NSString*) title height:(int) height style:(int) styles;
@end

哈哈,应该是写完了,不说了,这么晚了,我开始装逼去了,扯淡结束,装逼去了!

大神勿喷!

源码下载地址

时间: 2024-10-09 11:00:50

iOS学习之UiTableView仿个人中心页面,据说学会这个控件就能装逼了的相关文章

关于UITableView选中效果以及自定义cell上的控件响应事件

tableView默认的点击效果是:点击cell:A,出现点击效果,点另一个cell:B的时候,A的点击效果才会消失. 1.对于tableView,比较常用的效果,是点击表格行,出现效果,点击完毕,效果消失 那么就要在代码里做一些设置.代码如下: -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath

IOS学习之UITableView滚动到指定位置

IOS学习之UITableView滚动到指定位置 方法很简单: - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 有些需要注意的地方: 如果在reloadData后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadDa

iOS学习笔记—— UItableView 控件的简单使用

UITableView 可以说是iOS开发中最常用的控件,除了游戏之外,几乎所有的应用中独会出现他的身影. 使用UITableView控件需要遵守两种协议 UITableViewDelegate和 UITableViewDataSource. 常用方法如下: 1.返回(每个分区)表单元个数(行数) - (NSInteger) tableView: (UItableView *) tableVIew numberOfRowsInSection: (NSInteger)section 2.返回表单元

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果(五) 五一劳动节马上来临,小伙伴有妹有很激动哟,首先祝天下所有的程序猿节日快乐!这个五一对于我来说有点不一样,我的人生从这个五一就转弯了,爱情长跑8年的我结婚了,一会支付宝账号我会公布出去,请自觉打款!谢谢合作. 灯光闪起来: 舞蹈跳起来: 歌曲唱起来: -------------------------------------------------------------------------------------

ASP.NET页面生命周期与控件生命周期

ASP.NET页面生命周期 (1)PreInit 预初始化(2)Init 初始化(3)InitComplete 初始化完成(4)PreLoad 预加载(5)Load 加载(6)LoadComplete 加载完成(7)PreRender 预输出(8)PreRenderComplete 预输出完成(9)Unload 卸载 ASP.NET控件生命周期 -- 实例化(Instantiate) 控件被页面或另一个控件通过调用它的构造器所实例化.这个步骤之后所列出的阶段,仅当控件加入控件树中才会发生. --

自动识别页面上的所有控件是否被改变过

在页面开发的新增或者修改的时候,有时候给页面上的所有控件赋值完之后,点击保存,此页面不关闭,那么问题来了,如果页面上所有的值都不改变,这时候如果继续进行保存操作,着实有些不妥,那么就需要判断页面上的所有控件是否被改变过,接下来方法如下: 1.js如下: var inputsData; var textareasData; var selectsData; $(function () { inputLoad(); }); function inputLoad() { var inputs = do

子页面如何获得母版页控件的值

有一个网友在问: 为了子页能访问到MasterPage母版页的控件,使用接口: 母版页实作这个接口 在子页的铵钮事件: 演示一下: 子页面如何获得母版页控件的值

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件出错的解决方案

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebForm 4.5 开发中,很多控件默认Enable了 Unobtrusive ValidationMode(所谓Unobtrusive Validation,就是一种隐式的验证方式)的属性(和jquery的引用相关),但并未对其进行赋值, Programmer必须手动对其进行设置.比如,在进行数据验证时

如何在aspx页面中使用ascx控件(用户自定义的一个控件)?

aspx是页面文件ascx是用户控件,用户控件必须嵌入到aspx中才能使用. ascx是用户控件,相当于模板 其实ascx你可以理解为Html里的一部分代码,只是嵌到aspx里而已,因为aspx内容多的时候实在是不太好管理,而且你把公共的Html部分写成ascx也可以公用在很多aspx里比如Web页的下面注释部分 如何使用??? 首先注册: <%@ Register TagPrefix="uc1" TagName="Control1" Src="Co