效果图如下
1 #import 2 3 interface AppDelegate : UIResponder 4 5 property (strong, nonatomic) UIWindow *window;6 7 8 end
1 #import "AppDelegate.h" 2 #import "RootViewController.h" 3 interface AppDelegate () 4 5 end 6 7 implementation AppDelegate 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {11 self.window [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];12 // Override point for customization after application launch.13 self.window.backgroundColor [UIColor whiteColor];14 15 RootViewController *root [[RootViewController alloc] init];16 UINavigationController *navi [[UINavigationController alloc] initWithRootViewController:root];17 self.window.rootViewController navi;18 19 [self.window makeKeyAndVisible];20 return YES;21 }22 23 24 end
1 #import 2 3 interface RootViewController : UIViewController4 5 end
1 #import "RootViewController.h" 2 #import "MainCell.h" 3 #import "DetialTableViewCell.h" 4 interface RootViewController () 5 { 6 UITableView *_tableView; 7 NSMutableDictionary *dic;//存对应的数据 8 NSMutableArray *selectedArr;// 二级列表是否展开状态 9 NSMutableArray *titleDataArray; 10 NSArray *dataArray;//数据源显示每个cell的数据 11 NSMutableDictionary *stateDic;//三级列表是否展开状态 12 NSMutableArray *groupArr0; 13 NSMutableArray *groupArr1; 14 NSMutableArray *groupArr2; 15 NSMutableArray *groupArr3; 16 NSMutableArray *groupArr4; 17 NSMutableArray *groupArr5; 18 19 } 20 end 21 22 implementation RootViewController 23 24 - (void)viewDidLoad { 25 [super viewDidLoad]; 26 self.title "列表"; 27 dic [[NSMutableDictionary alloc] init]; 28 selectedArr [[NSMutableArray alloc] init]; 29 dataArray [[NSMutableArray alloc] init]; 30 31 // 初始化tableView 32 _tableView [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320*scaleX, [UIScreen mainScreen].bounds.size.height) style:UITableViewStylePlain]; 33 _tableView.delegate self; 34 _tableView.dataSource self; 35 // 隐藏滚动条 36 _tableView.showsVerticalScrollIndicator NO; 37 _tableView.showsHorizontalScrollIndicator NO; 38 _tableView.separatorStyle UITableViewCellSeparatorStyleNone; 39 [self.view addSubview:_tableView]; 40 41 // 加载数据 42 [self loadData]; 43 } 44 /** 45 * 加载数据 46 */ 47 - (void)loadData 48 { 49 titleDataArray [[NSMutableArray alloc] initWithObjects:"亲朋","家人","好友", "蓝颜","同学","老乡",nil]; 50 51 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小莉","name","NO","state", nil]; 52 NSMutableDictionary *nameAndStateDic2 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","婷婷","name","NO","state", nil]; 53 NSMutableDictionary *nameAndStateDic3 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小庄","name","NO","state", nil]; 54 55 groupArr0 [[NSMutableArray alloc] initWithObjects:nameAndStateDic1,nameAndStateDic2,nameAndStateDic3, nil]; 56 57 NSMutableDictionary *nameAndStateDic4 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","晨晨姐","name","NO","state",nil]; 58 NSMutableDictionary *nameAndStateDic5 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","李涛","name","NO","state",nil]; 59 NSMutableDictionary *nameAndStateDic6 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","海波","name","NO","state",nil]; 60 NSMutableDictionary *nameAndStateDic7 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","张敏","name","NO","state",nil]; 61 62 groupArr1 [[NSMutableArray alloc]initWithObjects:nameAndStateDic4,nameAndStateDic5,nameAndStateDic6,nameAndStateDic7, nil]; 63 64 NSMutableDictionary *nameAndStateDic8 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","杨浩","name","NO","state",nil]; 65 NSMutableDictionary *nameAndStateDic9 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小明","name","NO","state",nil]; 66 NSMutableDictionary *nameAndStateDic10 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","洋洋","name","NO","state",nil]; 67 NSMutableDictionary *nameAndStateDic11 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","赵蒙","name","NO","state",nil]; 68 NSMutableDictionary *nameAndStateDic12 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小催","name","NO","state",nil]; 69 NSMutableDictionary *nameAndStateDic13 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","和平","name","NO","state",nil]; 70 71 groupArr2 [[NSMutableArray alloc]initWithObjects:nameAndStateDic8,nameAndStateDic9,nameAndStateDic10,nameAndStateDic11,nameAndStateDic12,nameAndStateDic13,nil]; 72 73 NSMutableDictionary *nameAndStateDic14 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","超人","name","NO","state",nil]; 74 NSMutableDictionary *nameAndStateDic15 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","怪兽","name","NO","state",nil]; 75 76 groupArr3 [[NSMutableArray alloc] initWithObjects:nameAndStateDic14,nameAndStateDic15, nil]; 77 78 NSMutableDictionary *nameAndStateDic16 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","大包","name","NO","state",nil]; 79 NSMutableDictionary *nameAndStateDic17 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小林子","name","NO","state",nil]; 80 NSMutableDictionary *nameAndStateDic18 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","石头","name","NO","state",nil]; 81 NSMutableDictionary *nameAndStateDic19 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","小轩轩","name","NO","state",nil]; 82 NSMutableDictionary *nameAndStateDic20 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","阿东","name","NO","state",nil]; 83 84 groupArr4 [[NSMutableArray alloc]initWithObjects:nameAndStateDic16,nameAndStateDic17,nameAndStateDic18,nameAndStateDic19,nameAndStateDic20, nil]; 85 86 NSMutableDictionary *nameAndStateDic21 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","郑平","name","NO","state",nil]; 87 NSMutableDictionary *nameAndStateDic22 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","刘凡","name","NO","state",nil]; 88 NSMutableDictionary *nameAndStateDic23 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","韩琴","name","NO","state",nil]; 89 NSMutableDictionary *nameAndStateDic24 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","刘华健","name","NO","state",nil]; 90 NSMutableDictionary *nameAndStateDic25 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","彭晓明","name","NO","state",nil]; 91 NSMutableDictionary *nameAndStateDic26 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","张欢","name","NO","state",nil]; 92 NSMutableDictionary *nameAndStateDic27 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","刘来楠","name","NO","state",nil]; 93 NSMutableDictionary *nameAndStateDic28 [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell","任强","name","NO","state",nil]; 94 95 groupArr5 [[NSMutableArray alloc]initWithObjects:nameAndStateDic21,nameAndStateDic22,nameAndStateDic23,nameAndStateDic24,nameAndStateDic25,nameAndStateDic26,nameAndStateDic27,nameAndStateDic28, nil]; 96 97 [dic setValue:groupArr0 forKey:"0"]; 98 [dic setValue:groupArr1 forKey:"1"]; 99 [dic setValue:groupArr2 forKey:"2"];100 [dic setValue:groupArr3 forKey:"3"];101 [dic setValue:groupArr4 forKey:"4"];102 [dic setValue:groupArr5 forKey:"5"];103 104 }105 106 #pragma mark - tableViewDelegate - 107 // 返回几个表头108 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView109 {110 return titleDataArray.count;111 }112 113 // 每个表头返回几行114 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section115 {116 NSString *string [NSString stringWithFormat:"%d",(int)section];117 // 如果表头返回值不为零则修改图片改成箭头向下的图片118 if ([selectedArr containsObject:string]) {119 UIImageView *imageView (UIImageView *)[_tableView viewWithTag:20000 section];120 imageView.image [UIImage imageNamed:"buddy_header_arrow_down"];121 122 NSArray *array1 dic[string];123 return array1.count;124 }125 return 0;126 }127 128 // 设置表头的高度129 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section130 {131 return 40*scaleX;132 }133 // Section Footer的高度134 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section135 {136 return 0.2;137 }138 // 设置view将替代titleForHeaderInsection方法139 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section140 {141 UIView *view [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320*scaleX, 30*scaleY)];142 view.backgroundColor [UIColor whiteColor];143 144 UILabel *titleLabel [[UILabel alloc] initWithFrame:CGRectMake(20*scaleX, 5*scaleY, tableView.frame.size.width - 20*scaleX, 30*scaleY)];145 titleLabel.text [titleDataArray objectAtIndex:section];146 [view addSubview:titleLabel];147 148 UIImageView *imageView [[UIImageView alloc] initWithFrame:CGRectMake(5*scaleX, 12*scaleY, 15*scaleX, 15*scaleY)];149 imageView.tag 20000section;150 151 // 判断是不是选中状态152 NSString *string [NSString stringWithFormat:"%d",(int)section];153 if ([selectedArr containsObject:string]) {154 imageView.image [UIImage imageNamed:"buddy_header_arrow_down"];155 }else{156 imageView.image [UIImage imageNamed:"buddy_header_arrow_right"];157 }158 [view addSubview:imageView];159 160 UIButton *button [UIButton buttonWithType:UIButtonTypeCustom];161 button.frame CGRectMake(0, 0, 320*scaleX, 40*scaleY);162 button.tag 100 section;163 [button addTarget:self action:selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];164 [view addSubview:button];165 166 UIImageView *lineImage [[UIImageView alloc] initWithFrame:CGRectMake(0, 40*scaleY - 1, 320*scaleX, 1)];167 lineImage.image [UIImage imageNamed:"line"];168 [view addSubview:lineImage];169 170 return view;171 }172 173 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath174 {175 NSString *indexStr [NSString stringWithFormat:"%d",(int)indexPath.section];176 if ([dic[indexStr][indexPath.row]["cell"] isEqualToString:"MainCell"]) {177 return 60*scaleY;178 }else{179 return 40*scaleY;180 }181 }182 183 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath184 {185 // 当前是第几个表头186 NSString *indexStr [NSString stringWithFormat:"%d",(int)indexPath.section];187 if ([dic[indexStr][indexPath.row]["cell"] isEqualToString:"MainCell"]) {188 static NSString *identifier "MainCell";189 MainCell *cell [tableView dequeueReusableCellWithIdentifier:identifier];190 191 if (cell nil) {192 cell [[MainCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];193 cell.selectionStyle UITableViewCellSelectionStyleGray;194 }195 196 if ([selectedArr containsObject:indexStr]) {197 cell.Headerphoto.image [UIImage imageNamed:[NSString stringWithFormat:"%d.png",arc4random()%11]];198 cell.nameLabel.text dic[indexStr][indexPath.row]["name"];199 cell.IntroductionLabel.text "滴滴雨点仿佛似流泪滴在我冰冷的身躯";200 cell.networkLabel.text "2G";201 }202 // ???203 if (indexPath.row dataArray.count - 1) {204 cell.imageLine.image nil;205 }else{206 cell.imageLine.image [UIImage imageNamed:"line"];207 }208 return cell;209 }else if ([dic[indexStr][indexPath.row]["cell"] isEqualToString:"AttachedCell"]){210 static NSString *detialIdentifier "AttachedCell";211 DetialTableViewCell *cell [tableView dequeueReusableCellWithIdentifier:detialIdentifier];212 213 if (cell nil) {214 cell [[DetialTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:detialIdentifier];215 cell.selectionStyle UITableViewCellSeparatorStyleNone;216 cell.imageLine.image [UIImage imageNamed:"line"];217 }218 return cell;219 }220 return nil;221 }222 223 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath224 {225 // TODO:search226 [_tableView deselectRowAtIndexPath:indexPath animated:YES];227 NSString *indexStr [NSString stringWithFormat:"%d",(int)indexPath.section];228 NSIndexPath *path nil;229 230 if ([dic[indexStr][indexPath.row]["cell"] isEqualToString:"MainCell"]) {231 // TODO:search232 path [NSIndexPath indexPathForItem:(indexPath.row 1) inSection:indexPath.section];233 }else{234 path indexPath;235 } 236 if ([dic[indexStr][indexPath.row]["state"] boolValue]) {237 // 关闭附加cell238 NSMutableDictionary *dd dic[indexStr][indexPath.row];239 NSString *name dd["name"];240 241 NSMutableDictionary *nameAndStateDic [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell",name,"name","NO","state", nil];242 243 switch (indexPath.section) {244 case 0:245 {246 groupArr0[(path.row-1)] nameAndStateDic;247 [groupArr0 removeObjectAtIndex:path.row];248 }249 break;250 case 1:251 {252 groupArr1[(path.row-1)] nameAndStateDic;253 [groupArr1 removeObjectAtIndex:path.row];254 }255 break;256 case 2:257 {258 groupArr2[(path.row-1)] nameAndStateDic;259 [groupArr2 removeObjectAtIndex:path.row];260 }261 break;262 case 3:263 {264 groupArr3[(path.row-1)] nameAndStateDic;265 [groupArr3 removeObjectAtIndex:path.row];266 }267 break;268 case 4:269 {270 groupArr4[(path.row-1)] nameAndStateDic;271 [groupArr4 removeObjectAtIndex:path.row];272 }273 break;274 case 5:275 {276 groupArr5[(path.row-1)] nameAndStateDic;277 [groupArr5 removeObjectAtIndex:path.row];278 }279 break;280 default:281 break;282 }283 284 [_tableView beginUpdates];285 [_tableView deleteRowsAtIndexPaths:[path] withRowAnimation:UITableViewRowAnimationMiddle];286 [_tableView endUpdates];287 }else{288 // 打开附加cell289 NSMutableDictionary *dd dic[indexStr][indexPath.row];290 NSString *name dd["name"];291 292 NSMutableDictionary *nameAndStateDic [NSMutableDictionary dictionaryWithObjectsAndKeys:"MainCell","cell",name,"name","YES","state", nil];293 switch (indexPath.section) {294 case 0:295 {296 groupArr0[(path.row-1)] nameAndStateDic;297 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];298 [groupArr0 insertObject:nameAndStateDic1 atIndex:path.row];299 }300 break;301 case 1:302 {303 groupArr1[(path.row-1)] nameAndStateDic;304 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];305 [groupArr1 insertObject:nameAndStateDic1 atIndex:path.row];306 }307 break;308 case 2:309 {310 groupArr2[(path.row-1)] nameAndStateDic;311 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];312 [groupArr2 insertObject:nameAndStateDic1 atIndex:path.row];313 }314 break;315 case 3:316 {317 groupArr3[(path.row-1)] nameAndStateDic;318 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];319 [groupArr3 insertObject:nameAndStateDic1 atIndex:path.row];320 }321 break;322 case 4:323 {324 groupArr4[(path.row-1)] nameAndStateDic;325 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];326 [groupArr4 insertObject:nameAndStateDic1 atIndex:path.row];327 }328 break;329 case 5:330 {331 groupArr5[(path.row-1)] nameAndStateDic;332 NSMutableDictionary *nameAndStateDic1 [NSMutableDictionary dictionaryWithObjectsAndKeys:"AttachedCell","cell","YES","state", nil];333 [groupArr5 insertObject:nameAndStateDic1 atIndex:path.row];334 }335 break;336 default:337 break;338 }339 [_tableView beginUpdates];340 [_tableView insertRowsAtIndexPaths:[path] withRowAnimation:UITableViewRowAnimationMiddle];341 [_tableView endUpdates];342 }343 }344 345 -(void)buttonAction:(UIButton *)sender346 {347 NSString *string [NSString stringWithFormat:"%d",(int)(sender.tag-100)];348 349 //数组selectedArr里面存的数据和表头想对应方便以后做比较350 if ([selectedArr containsObject:string])351 {352 [selectedArr removeObject:string];353 }354 else355 {356 [selectedArr addObject:string];357 }358 359 [_tableView reloadData];360 }361 362 - (void)didReceiveMemoryWarning {363 [super didReceiveMemoryWarning];364 // Dispose of any resources that can be recreated.365 }366 367 368 369 end
1 #import 2 3 interface MainCell : UITableViewCell 4 5 property (strong, nonatomic) UILabel *nameLabel; 6 7 property (strong, nonatomic) UILabel *IntroductionLabel; 8 9 property (strong, nonatomic) UILabel *networkLabel;10 11 property (strong, nonatomic) UIImageView *Headerphoto;12 13 property (strong, nonatomic) UIImageView *imageLine;14 15 end
1 #import "MainCell.h" 2 3 implementation MainCell 4 5 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 6 { 7 self [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 8 if (self) { 9 // 头像10 _Headerphoto [[UIImageView alloc] initWithFrame:CGRectMake(6*scaleX, 5*scaleY, 50*scaleX, 50*scaleX)];11 [self.contentView addSubview:_Headerphoto];12 // 名字13 _nameLabel [[UILabel alloc] initWithFrame:CGRectMake(60*scaleX, 5*scaleY, 200*scaleX, 25*scaleX)];14 _nameLabel.font [UIFont systemFontOfSize:15];15 [self.contentView addSubview:_nameLabel];16 // 简介17 _IntroductionLabel [[UILabel alloc] initWithFrame:CGRectMake(60*scaleX, 28*scaleY, 240*scaleX, 25*scaleX)];18 _IntroductionLabel.backgroundColor [UIColor clearColor];19 _IntroductionLabel.textColor [UIColor lightGrayColor];20 _IntroductionLabel.font [UIFont systemFontOfSize:13];21 [self.contentView addSubview:_IntroductionLabel];22 23 // 网络24 _networkLabel [[UILabel alloc] initWithFrame:CGRectMake(290*scaleX, 5*scaleY, 50*scaleX, 25*scaleY)];25 _networkLabel.backgroundColor [UIColor clearColor];26 _networkLabel.textColor [UIColor lightGrayColor];27 _networkLabel.font [UIFont systemFontOfSize:13];28 [self.contentView addSubview:_networkLabel];29 30 // 分割线31 _imageLine [[UIImageView alloc] initWithFrame:CGRectMake(60*scaleX, 60*scaleY - 1, (320 - 60)*scaleX, 1)];32 [self.contentView addSubview:_imageLine];33 }34 return self;35 }36 37 end
1 #import 2 3 interface DetialTableViewCell : UITableViewCell4 5 property (strong, nonatomic) UIImageView *imageLine;6 7 end
1 #import "DetialTableViewCell.h" 2 #import "UIButtoninitializer.h" 3 implementation DetialTableViewCell 4 5 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 6 { 7 self [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 8 if (self) { 9 // 分割线10 _imageLine [[UIImageView alloc] initWithFrame:CGRectMake(60*scaleX, 40*scaleY - 1, (320 - 60)*scaleY, 1)];11 [self.contentView addSubview:_imageLine];12 13 UIButton *btn1 [UIButton initButtonWithFrame:CGRectMake(70*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:"语音" Target:self Selector:selector(btnAction:)];14 btn1.tag 100;15 16 UIButton *btn2 [UIButton initButtonWithFrame:CGRectMake(130*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:"视频" Target:self Selector:selector(btnAction:)];17 btn2.tag 200;18 19 UIButton *btn3 [UIButton initButtonWithFrame:CGRectMake(190*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:"图片" Target:self Selector:selector(btnAction:)];20 btn3.tag 300;21 22 UIButton *btn4 [UIButton initButtonWithFrame:CGRectMake(250*scaleX, 9*scaleY, 50*scaleX, 20*scaleY) Title:"表情" Target:self Selector:selector(btnAction:)];23 btn4.tag 400;24 25 [self.contentView addSubview:btn1];26 [self.contentView addSubview:btn2];27 [self.contentView addSubview:btn3];28 [self.contentView addSubview:btn4];29 }30 return self;31 }32 33 - (void)btnAction:(UIButton *)sender34 {35 switch (sender.tag) {36 case 100:37 {38 NSLog("~~~~语音~~~~");39 }40 break;41 case 200:42 {43 NSLog("~~~~视频~~~~");44 }45 break;46 case 300:47 {48 NSLog("~~~~图片~~~~");49 }50 break;51 case 400:52 {53 NSLog("~~~~表情~~~~");54 }55 break;56 default:57 break;58 }59 }60 61 - (void)awakeFromNib {62 // Initialization code63 }64 65 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {66 [super setSelected:selected animated:animated];67 68 // Configure the view for the selected state69 }70 71 end
1 #import 2 3 interface UIButton (initializer) 4 /** 5 * 初始化button 6 * 7 * param frame button的尺寸 8 * param target button的目标对象 9 * param selector 点击button所触发的方法10 * param image button的背景图片11 * param imagePressed button高亮时的图片12 *13 * return button14 */15 (UIButton *)initButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed;16 /**17 * 初始化button18 *19 * param frame button的尺寸20 * param title button的标题21 * param target button的目标对象22 * param selector 点击button所触发的方法23 *24 * return button25 */26 (UIButton *)initButtonWithFrame:(CGRect)frame Title:(NSString *)title Target:(id)target Selector:(SEL)selector;27 28 end
1 #import "UIButtoninitializer.h" 2 3 implementation UIButton (initializer) 4 5 (UIButton *)initButtonWithFrame:(CGRect)frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed 6 { 7 UIButton *button [UIButton buttonWithType:UIButtonTypeCustom]; 8 [button setFrame:frame]; 9 UIImage *newImage [UIImage imageNamed:image];10 [button setBackgroundImage:newImage forState:0];11 UIImage *newPressedImage [UIImage imageNamed:imagePressed];12 [button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted];13 [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];14 return button;15 }16 17 (UIButton *)initButtonWithFrame:(CGRect)frame Title:(NSString *)title Target:(id)target Selector:(SEL)selector18 {19 UIButton *button [UIButton buttonWithType:UIButtonTypeRoundedRect];20 [button setFrame:frame];21 [button setTitle:title forState:0];22 [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];23 return button;24 }25 26 end
pch文件的代码
1 #ifndef QQList_PrefixHeader_pch2 #define QQList_PrefixHeader_pch3 4 #define scaleX [UIScreen mainScreen].bounds.size.width/320.05 #define scaleY [UIScreen mainScreen].bounds.size.height/568.06 7 #endif
转:https://www.cnblogs.com/lantu1989/p/4755822.html