你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 點擊cell顯示cell的細節

點擊cell顯示cell的細節

編輯:IOS開發綜合
實現的功能:點擊cell顯示cell的詳細信息,再次點擊關閉cell的詳細信息。 #import <UIKit/UIKit.h>     @interface MyCell : UITableViewCell {     UILabel *lab_info;     UILabel *lab_detailInfo;     CGFloat normalHeight; } @property (retain,nonatomic)UILabel *lab_info,*lab_detailInfo; @property CGFloat normalHeight; -(CGFloat)getMyCellHeight; -(void)resetCellHeight; @end     #import "MyCell.h" @interface MyCell() { } @end @implementation MyCell   @synthesize lab_info,lab_detailInfo; @synthesize normalHeight; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];     if (self) {           lab_info=[[UILabel alloc]init];         [self.contentView addSubview:lab_info];         //         self.normalHeight=self.frame.size.height;         //         lab_detailInfo=[[UILabel alloc]init];         lab_detailInfo.lineBreakMode=NSLineBreakByCharWrapping;         lab_detailInfo.numberOfLines=5;         [self.contentView addSubview:lab_detailInfo];         //         self.layer.shadowColor=[UIColor blackColor].CGColor;         self.layer.shadowOffset=CGSizeMake(0, 2);         self.layer.shadowOpacity=0.3;         self.layer.shadowRadius=2;         //              }     return self; }   - (void)setSelected:(BOOL)selected animated:(BOOL)animated {     [super setSelected:selected animated:animated]; } -(CGFloat)getDetailLabViewHeight {     [self.lab_detailInfo sizeToFit];     return self.lab_detailInfo.frame.size.height;; } -(CGFloat)getMyCellHeight {     return normalHeight +[self getDetailLabViewHeight]; }   -(void)resetCellHeight {     [self layoutIfNeeded];     CGRect cellFrame=self.frame;     cellFrame.size.height=normalHeight+[self getDetailLabViewHeight];     [self setFrame:cellFrame]; } -(void)layoutSubviews {     [super layoutSubviews];     //設置標題的lab的高度     CGRect lab_info_Frame=CGRectInset(self.frame, 0, 0);     lab_info_Frame.origin.x=lab_info_Frame.origin.y=0;     lab_info_Frame.size.height=normalHeight;     [lab_info setFrame:lab_info_Frame];     //設置詳細信息的高度     CGRect lab_detailInfo_Frame=CGRectInset(self.frame, 0, 0);     lab_detailInfo_Frame.origin.x=0;     lab_detailInfo_Frame.origin.y=normalHeight;     lab_detailInfo_Frame.size.height=[self getDetailLabViewHeight];     [lab_detailInfo setFrame:lab_detailInfo_Frame];     //     //[self setNeedsDisplay]; } -(void)drawRect:(CGRect)rect {     [super drawRect:rect];     self.contentView.backgroundColor=[UIColor grayColor];     lab_info.backgroundColor=[UIColor clearColor];     lab_detailInfo.backgroundColor=[UIColor clearColor]; }   @end   #import <UIKit/UIKit.h> #import "MyCell.h" @interface RootViewController : UITableViewController {     NSMutableArray *isItemSelected; }     @end     #import "RootViewController.h"   @implementation RootViewController     #pragma mark - #pragma mark View lifecycle   - (void)viewDidLoad {     [super viewDidLoad];       isItemSelected=[[NSMutableArray alloc]initWithCapacity:5];     for (int i=0; i<5; i++)     {         [isItemSelected insertObject:[NSNumber numberWithBool:NO] atIndex:i];     } }   #pragma mark - #pragma mark Table view data source   // Customize the number of sections in the table view. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {     return 1; }     // Customize the number of rows in the table view. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {     return 5; }   // Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {          static NSString *CellIdentifier = @"Cell";          MyCell  *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];     if (cell == nil) {         cell = (MyCell*)[[MyCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];         cell.selectionStyle=UITableViewCellSelectionStyleNone;     }       cell.lab_info.text=[NSString stringWithFormat:@"title-%d",indexPath.row];     cell.lab_detailInfo.text=[NSString stringWithFormat:@"subtitle-%d",indexPath.row];     if ([[isItemSelected objectAtIndex:indexPath.row]boolValue]==YES) {         cell.lab_detailInfo.hidden=NO;     }else{        cell.lab_detailInfo.hidden=YES;     } www.2cto.com     return cell; }   #pragma mark - #pragma mark Table view delegate   - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {       MyCell *cell=(MyCell *)[self tableView:tableView cellForRowAtIndexPath:indexPath];     if ([[isItemSelected objectAtIndex:indexPath.row] boolValue]==YES) {          return [cell getMyCellHeight];     }     else     {        return cell.normalHeight;         }          }     - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {       BOOL b=[[isItemSelected objectAtIndex:indexPath.row]boolValue];     [isItemSelected replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:!b]];     //     [tableView reloadData];    // [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];        }   效果是這樣的  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved