UIViewController


//----------------标题

self.title = @"联系人资料";

//----------------标题栏不透明度

self.navigationController.navigationBar.translucent = NO;

//----------------背景颜色

self.view.backgroundColor = [WebColor white];

//----------------按钮字体颜色

self.navigationController.navigationBar.tintColor = [UIColor redColor];

//----------------添加附加样子

.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

//----------------标题栏按钮(左右)

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"添加联系人" style:UIBarButtonItemStyleBordered target:self action:@selector(click:)] autorelease];

//----------------设置标题背景颜色

self.navigationController.navigationBar.barTintColor = [WebColor pink];

//----------------匹配view高度

self.view.frame.size.height - 64

//----------------上左下右的距离

UITableView.separatorInset = UIEdgeInsetsMake(0, 40, 0, 10);

//----------------线条颜色

UITableView.separatorColor = [UIColor grayColor];

//----------------设置代理

UITableView.dataSource = self;

//----------------代理

UITableView.delegate = self;

//----------------线条间隔

UITableView.rowHeight = 80;

//----------------设定Header的高度,

UITableView.sectionHeaderHeight = 50;

//----------------设定footer的高度,

UITableView.sectionFooterHeight = 100;

//----------------跳到指的row or section

[UITableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]

                        atScrollPosition:UITableViewScrollPositionBottom animated:NO];

//----------------设定cell分行线的样式,默认为UITableViewCellSeparatorStyleSingleLine

UITableView.separatorStyle = UITableViewCellSeparatorStyleSingleLineEtched;

//----------------刷新界面(重新载入所有数据)

[tableview reloadData];

//----------------进入下一个视图 是否有动画(YES)

[self.navigationController pushViewController:view animated:YES];

//----------------返回到上一个视图

[self.navigationController popViewControllerAnimated:YES];

//----------------返回到根视图

[self.navigationController popToRootViewControllerAnimated:YES];

//----------------返回到指定视图

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];

//----------------调用代理中的方法   (判断是否登陆)

[self.Delegate isRegister];

//----------------让页面弹回去

[self dismissViewControllerAnimated:NO completion:NULL];

//----------------设置没选中之前的背景颜色

cell.contentView.backgroundColor = [UIColor clearColor];

//----------------未选cell时的图片

cell.imageView.image=[UIImage imageNamed:@"1001.jpg"];

//----------------选中cell后的图片

cell.imageView.highlightedImage=[UIImage imageNamed:@"1002.jpg"];

//----------------未知方法

cell.textLabel.text=[[self.myDic objectForKey:[[self.myDic allKeys]objectAtIndex:indexPath.section]]objectAtIndex:indexPath.row];

//----------------自定义选中cell时的背景颜色

    UIView *selectedView = [[UIView alloc] initWithFrame:cell.contentView.frame];

    selectedView.backgroundColor = [UIColor orangeColor];

    cell.selectedBackgroundView = selectedView;

//----------------自定义导航栏

    //-----1创建一个导航栏

    UINavigationBar *a = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 300, 320, 44)];

    a.barTintColor = [UIColor redColor];//设置背景颜色

    a.tintColor = [UIColor blackColor];//字体颜色

    a.translucent = NO;//不透明度

    //-----2创建一个导航栏集合

    UINavigationItem * b = [[UINavigationItem alloc] initWithTitle:nil];

    //-----3创建按钮

    UIBarButtonItem * left = [[UIBarButtonItem alloc] initWithTitle:@"回左边" style:UIBarButtonItemStyleBordered target:self action:@selector(left:)];

    UIBarButtonItem * right = [[UIBarButtonItem alloc] initWithTitle:@"去右边" style:UIBarButtonItemStyleBordered target:self action:@selector(right:)];

    //-----4添加导航标题

    b.title = @"June";

    //-----5把集合加到导航栏中

    [a pushNavigationItem:b animated:NO];

    //-----6把按钮添加到导航栏左右

    b.LeftBarButtonItem = left;

    b.rightBarButtonItem = right;

    //-----7添加 释放

    [self.view addSubview:a];

    [a release];

    [b release];

    [left release];

[right release];

//----------------

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

{

    static NSString * cellIdentify = @"3";//创建一个静态变量

    //------------------------------------------------------自定义方法

    //从池子中取出

    //调用自定义tableview

    MainTableViewCell * cell= [tableView dequeueReusableCellWithIdentifier:cellIdentify];//teble要从名字叫cell的池子中取出不用的cell

    if (!cell) {//如果b为空

         //调用自定义tableview

        cell = [[[MainTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"hello"]autorelease];

    }

    Student * stu = [_tableArray objectAtIndex:indexPath.row];//多少行

    cell.labelName.text = stu.name;

    cell.labelPhoto.image = [UIImage imageNamed:stu.photo];

    //------------------------------------------------------自定义方法

    

------------------------------------------------------系统方法

    NSString * str = [NSString stringWithFormat:@"%d_%d",indexPath.section,indexPath.row];//创建字符串把内容添加到标题框中

        NSDictionary * name = [_tableArray objectAtIndex:indexPath.row];//按下标取出数组的内容保存到字典中

    NSString * name = [_tableArray objectAtIndex:indexPath.row];//按下标取出数组的内容保存到字符串中

    UITableViewCell * a = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"hello"] autorelease];//设置风格

    cell.imageView.image = [UIImage imageNamed:@"1.png"];//添加图片

    cell.detailTextLabel.text = [name objectForKey:@"sex"];//设置标题文本

    cell.textLabel.text = [name objectForKey:@"name"];//设置文本

------------------------------------------------------系统方法

    return cell ;

}

//----------------设置cell行数

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

{

    return 1;

}

//----------------设置cell的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    if (indexPath.section == 0) {//如果是第一行 高度为50

        return 50;

    } else {

        return 80;

    }

}

//----------------设置section

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return 1;

}

//----------------设置上sectiontitle

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

    return @"";

}

//----------------设置下sectiontitle

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{

    return @"";

}

//----------------用以定制自定义的section头部视图-Header

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    return nil;

}

//----------------用以定制自定义的section底部视图-Footer

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{

    UIImageView *imageView_=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 20)];

    imageView_.image=[UIImage imageNamed:@"1000.png"];

    return imageView_;

}

//----------------设置上section的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

{

    return 50;

}

//----------------设置下section的高度

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

{

    return 30;

}

//----------------行缩进

-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{

    NSUInteger row = [indexPath row];

    return row;

}

//----------------移动row时执行

-(NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath

{

    NSLog(@"targetIndexPathForMoveFromRowAtIndexPath");

    //用于限制只在当前section下面才可以移动

    if(sourceIndexPath.section != proposedDestinationIndexPath.section){

        return sourceIndexPath;

    }

    return proposedDestinationIndexPath;

}

//----------------section的点击事件(//点击Cell响应事件 )

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath//找到标题栏的点击事件(//选中Cell响应事件 )

{

    NSMutableDictionary *dic = [_tableArray objectAtIndex:indexPath.section];//获取数组中当前点击的下标(因为之前储存数据是字典类,所以要用字典接收)

    NSMutableArray *someStu = [dic objectForKey:@"array"];//找到字典中keyarray的内容

    Student * tum = [someStu objectAtIndex:indexPath.row];//对应的行的下标给数据类对象

[tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失

    //当点击对应行的时候

    JuneViewController * view = [[JuneViewController alloc] init];

    view.contacts = tum;//把定义好数据类的对象传给需要的视图(把整个对象传过去,包含了所有内容)

    [self.navigationController pushViewController:view animated:NO];

    [view release];

    //把里面的内容取出来给联系人类相对应的属性

}

//----------------在需要传值的页面声明 传过来的是哪个储存数据的类

@class Student;

@interface NewViewController : UIViewController

@property (nonatomic ,retain) Student *myStu;

@end//然后可以直接调用数据类中的内容

//----------------移动cell (是否可以移动cell 默认NO)

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath

{

    return YES;

}

//----------------移动时的动作

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath*)destinationIndexPath

{

    //开始位置和当前位置交换

//    [_tableArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];


    //先删除后添加

    Sutdent * stu = [[_tableArray objectAtIndex:sourceIndexPath.row] retain];

    [_tableArray removeObjectAtIndex:sourceIndexPath.row];//先在数组中删除原始位置

    [_tableArray insertObject:stu atIndex:destinationIndexPath.row];//添加当前位置(移动到的那个新位置)

    [stu release];

    

}

//----------------滑动可以编辑时执行

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSLog(@"willBeginEditingRowAtIndexPath");

}


//----------------将取消选中时执行, 也就是上次先中的行

-(NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSLog(@"上次选中的行是  \n indexpath=%@",indexPath);

    return indexPath;

}

//----------------当前点击时提交的方法//风格

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSLog(@"%d",indexPath.row);

    if (editingStyle == UITableViewCellEditingStyleInsert) {//如果他是加号

        //创建一个新的cell

        Sutdent * stu = [Sutdent studentWithImage:@"a" title:@"a" phone:@"a" sex:@"a"];

        [_tableArray addObject:stu];

        //因为之前cell是固定的,所以要

        [_tableView reloadData];//重新执行一遍所有的协议所执行的方法(刷新界面)

    } 

    if (editingStyle == UITableViewCellEditingStyleDelete)

    {

        [_tableArray removeObjectAtIndex:indexPath.row];

        [_tableView reloadData];

    }

}

//----------------编辑按钮的点击事件 (navigationController按钮点击事件)

- (void)editAction:(id)sender

{   //在点击时首先让它处于 编辑状态

    self.editing = YES;

    //判断

    if (_tableView.editing) {

        [_tableView setEditing:NO animated:YES];//在编辑时

    } else

    {

        [_tableView setEditing:YES animated:YES];//在编辑时

    }

}

//----------------编辑状态时候的样式 (navigationController按钮点击事件)

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

{

    if (indexPath.row == 0) {//只让第一行改变编辑样式

        return UITableViewCellEditingStyleInsert;

    }

//    return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;

    return UITableViewCellEditingStyleDelete;//删除格式

}

//----------------哪行能被编辑 (navigationController按钮点击事件)//划动cell是否出现del按钮

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

{

//    if (indexPath.row == 0) {//设定只能编辑第一行

//        return YES;

//    }

//    return NO;

    return YES;

}

//----------------重写系统的编辑方法

- (void)setEditing:(BOOL)editing

{

    //要想编辑本类内容必须经过上一级同意

    super.editing = YES;//让父类处于编辑状态

}


//----------------添加索引标题

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

{

    NSMutableArray * array = [[[NSMutableArray alloc]init] autorelease];

    //    [array addObject:UITableViewIndexSearch];//添加索引标题放大镜

//    for (char c = 'A';  c <='Z'; c++) {

//        [array addObject:[NSString stringWithFormat:@"%c",c]];

//    }

    for (NSDictionary * a  in _tableArray) {

        [array addObject:[a objectForKey:@"name"]];

    }

    return array;

}

//----------------cell右边按钮格式为UITableViewCellAccessoryDetailDisclosureButton时,点击按扭时调用的方法

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

    NSLog(@"当前点击的详情button \n indexpath=%@",indexPath);

}


UIScrollView

//----------------------------------------------------------------------------------------------------

//----------创建滚动视图

    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 100, 320, 200)];

    [self.view addSubview:scroll];

    [scroll release];

    UILabel *content = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 0)];

    [content setText:self.bookModel.content];

    [content setBackgroundColor:[UIColor redColor]];

    [content setNumberOfLines:0];

    [scroll addSubview:content];

    [content release];

//-----------让文本与lable匹配

    //麻烦

//    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17],NSFontAttributeName, nil];

//    CGRect rect = [self.bookModel.content boundingRectWithSize:CGSizeMake(320, 10000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

//    [content setFrame:CGRectMake(0, 0, 320, rect.size.height)];

    //简单

    [content sizeToFit];

    [scroll setContentSize:CGSizeMake(320, content.frame.size.height)];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值