ios UI控件的简单整理(5)

#pragma mark - UITableView// 注册复用标示符[_myTableView registerClass:[BookCell class] forCellReuseIdentifier:@"cell"];

[_myTableView registerNib:[UINib nibWithNibName:@"BookCell"bundle:nil] forCellReuseIdentifier:@"cell"];// 自动下沉,(继承与scrollview,符合其特性)self.automaticallyAdjustsScrollViewInsets=NO;// 分割线颜色_myTableView.separatorColor= [UIColorredColor];// 通过tableview找到cellUITableViewCell*cell = [tableView cellForRowAtIndexPath:indexPath];// 设置cell点击以后是否变灰,如果参数设成NONE就不变,否则就变cell.selectionStyle= UITableViewCellSelectionStyleNone;// cell的附属view的类型(如果附属view里有btn,那么这个view的点击事件就会独立出来)// 代理有事件响应方法cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;// 自定义附属view//        cell.accessoryView// 脚标题行高- (CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section;

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

- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath;// 自定义头标题的view(view的会替换自带的头标题view)// frame设置无效,位置固定,宽度固定和table一样,高度通过代理方法设置- (UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section;// 设置小节数,默认为1- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section;// cell被点击时促发- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath

{// 让cell被选中变灰的状态,恢复成没变灰的状态[tableView deselectRowAtIndexPath:indexPath animated:YES];

}// 与上相反,一般不用- (void)tableView:(UITableView*)tableView didDeselectRowAtIndexPath:(NSIndexPath*)indexPath;// 如果cell的附属view里有btn,那么这个view的点击事件会独立出来- (void)tableView:(UITableView*)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath*)indexPath;#pragma -编辑相关// 刷新,重新加载数据[_myTableView reloadData];// 每次点击都改变tv的编辑状态// 修改删除按钮上的文字- (NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath;// 允许编辑,编辑相关的按钮(删除,插入)点击时触发- (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath

{if(editingStyle == UITableViewCellEditingStyleDelete) {// 通过位置先删除对应的数据模型[[_dataArr objectAtIndex:indexPath.section] removeObjectAtIndex:indexPath.row];

[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

}if(editingStyle == UITableViewCellEditingStyleInsert) {

Person *person = [[Person alloc] init];// 在数据对应位置插入数据[[_dataArr objectAtIndex:indexPath.section] insertObject:person atIndex:indexPath.row];// 在对应的位置插入一个cell(会自动匹配刚刚插入的数据)[_myTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

}

}// 设置cell的编辑风格- (UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath;// 返回删除和插入按位或(其实即使3),就是多选删除//return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;// 移动单元格- (void)tableView:(UITableView*)tableView moveRowAtIndexPath:(NSIndexPath*)sourceIndexPath toIndexPath:(NSIndexPath*)destinationIndexPath

{// 通过移动前的位置找到将要移动的数据模型Person *person = [[_dataArr objectAtIndex:sourceIndexPath.section] objectAtIndex:sourceIndexPath.row];// 把数据源删除[[_dataArr objectAtIndex:sourceIndexPath.section] removeObject:person];// 插入源位置[[_dataArr objectAtIndex:destinationIndexPath.section] insertObject:person atIndex:destinationIndexPath.row];

}// self.editButtonItem的点击事件// UIViewController自带的方法- (void)setEditing:(BOOL)editing animated:(BOOL)animated

{// 必须调用一次父类的(类似viewDidLoad)[supersetEditing:editing animated:YES];

[_myTableView setEditing:editing animated:YES];

}// 索引条// 默认情况下点击索引里的第几个,tv就会跳到第几段- (NSArray*)sectionIndexTitlesForTableView:(UITableView*)tableView

{NSMutableArray*titleArr = [NSMutableArrayarray];for(inti ='A'; i <='Z'; i++) {

[titleArr addObject:[NSStringstringWithFormat:@"%c", i]];

}returntitleArr;

}// 索引颜色//@property(nonatomic, retain) UIColor *sectionIndexColor NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;                  // color used for text of the section index//@property(nonatomic, retain) UIColor *sectionIndexBackgroundColor NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;        // the background color of the section index while not being touched//@property(nonatomic, retain) UIColor *sectionIndexTrackingBackgroundColor NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR; // the background color of the section index while it is being touched#pragma mark - UICollectionView// 网格视图需要一个布局来支撑自己UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];// 设置滚动方向(默认就是垂直方向)layout.scrollDirection= UICollectionViewScrollDirectionHorizontal;// 注册[_myCollection registerClass:[MyCell class] forCellWithReuseIdentifier:@"cell"];

[_myCollection registerClass:[MyView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"];

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath

{// 网格视图的cell必须提前注册MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell"forIndexPath:indexPath];

cell.label.text= [NSStringstringWithFormat:@"第%d个", indexPath.row];

cell.iconView.image= [UIImageimageNamed:[NSStringstringWithFormat:@"%d.jpg", indexPath.row]];returncell;

}// 设置单个cell的大小- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath*)indexPath;// 设置cell的分组- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;// 设置cell之间水平最小间隔- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;// 设置分段内部cell之间垂直最小间隔// 滑动方向的间距- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;// 设置分段之间的边距- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;// 设置段头或者段尾- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString*)kind atIndexPath:(NSIndexPath*)indexPath

{// 判断是段头还是短尾//    if (kind == UICollectionElementKindSectionFooter)MyView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"forIndexPath:indexPath];

}// 设置段头的大小(如果collectionView是垂直方向滑动,那么宽度会被忽略,系统会自动匹配成collectionView的宽度)- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容