当前位置:编程学习 > wap >>

点击cell显示cell的细节

实现的功能:点击cell显示cell的详细信息,再次点击关闭cell的详细信息。
#import <UIKit/UIKit.h>
 
 
@inte易做图ce 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"
@inte易做图ce 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"
@inte易做图ce 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.zzzyk.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;    <
补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,