iOS中大流中的自定义cell 技术分享
来源:互联网 发布:陌生网友找我淘宝开店 编辑:程序博客网 时间:2024/06/05 03:45
AppDelegate.m指定根视图
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] initWithStyle:UITableViewStylePlain]];//根视图
RootTableViewController.m
#import "RootTableViewController.h"#import "TestCell.h"#import "TestModel.h"@interface RootTableViewController ()@property (nonatomic, strong) NSMutableArray *datasourceArray;@end@implementation RootTableViewController- (void)viewDidLoad{ [super viewDidLoad]; self.datasourceArray = [NSMutableArray array]; [self.tableView registerClass:[TestCell class] forCellReuseIdentifier:@"cell"]; for (int i = 0; i < 50; i++) { TestModel *model = [TestModel new]; model.isShow = NO; [self.datasourceArray addObject:model]; } }
#pragma mark - Table view data source
数据源方法#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ // Return the number of rows in the section. return self.datasourceArray.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ TestCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; TestModel *model = self.datasourceArray[indexPath.row]; if (model.isShow) { cell.label.text = @"展示view"; [cell addView]; } else { cell.label.text = @"什么都没有"; [cell removeView]; } return cell;}
返回高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ TestModel *model = self.datasourceArray[indexPath.row]; if (model.isShow) { return 300; } else { return 100; }}点击cell触发的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ TestModel *model = self.datasourceArray[indexPath.row]; model.isShow = !model.isShow; [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];}准备一个自定义cell
#import <UIKit/UIKit.h>@interface TestCell : UITableViewCell@property (nonatomic, strong) UILabel *label;@property (nonatomic, strong) UIView *redView;- (void)addView;- (void)removeView;@end#import "TestCell.h"@implementation TestCell- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { [self addAllViews]; } return self;}- (void)addAllViews{ self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 100)]; self.label.backgroundColor = [UIColor yellowColor]; [self addSubview:self.label]; self.redView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 200)]; self.redView.backgroundColor = [UIColor redColor]; }- (void)addView{ [self addSubview:self.redView];}- (void)removeView{ [self.redView removeFromSuperview];}准备一个model类
#import <Foundation/Foundation.h>@interface TestModel : NSObject@property (nonatomic, assign) BOOL isShow;@end
最终效果如下:
有好的建议和问题可微博私信:http://weibo.com/hanjunqiang
1 0
- iOS中大流中的自定义cell 技术分享
- iOS中大流中的自定义cell 技术分享
- ios 自定义cell cellForRowAtIndexPath中的写法
- iOS cell自适应 自定义cell
- iOS 自定义cell
- ios UITableview自定义cell
- IOS学习 Cell自定义
- ios 自定义cell demo
- iOS UI09_自定义cell
- IOS - 自定义cell
- iOS--xib自定义cell
- iOS ---xib自定义cell
- ios 开发自定义cell
- IOS中Cell自定义
- iOS-cell.selectedBackgroundView自定义
- IOS之自定义Cell
- iOS-自定义cell
- iOS 自定义cell
- Unity3D脚本语言UnityScript初探
- 【Violet 5】【BZOJ2721】樱花
- 单项选择控件学习
- 世界媒体
- [noip2003]麦森数(快速幂+高精度)
- iOS中大流中的自定义cell 技术分享
- 2015最新最全 Android 谷歌消息推送GCM 详细使用教程
- Gitlab的使用
- 自反,反自反
- tyvj1035棋盘覆盖
- JAVA三星题之connect four
- coderforce 560A Currency System in Geraldion
- 多态的四种不同形式
- 国内开发者汇总