码迷,mamicode.com
首页 > 移动开发 > 详细

【代码笔记】iOS-cell自动变化大小

时间:2017-04-01 09:37:22      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:setfont   ctr   oid   use   计算机   eth   img   array   ini   

一,效果图。

技术分享

二,工程图。

技术分享

三,代码。

RootViewController.h

技术分享
#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController
<UITableViewDataSource,UITableViewDelegate>
{
    UITableView* myTableView;
    NSDictionary *dataDic;
}
@property (nonatomic , retain)NSArray* titleArray;
@property (nonatomic , retain)NSArray* contentArray;

@end
技术分享

 

RootViewController.m

技术分享
#import "RootViewController.h"
#import "RTLabel.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    self.title=@"RTLabel";
    
    [self initContentView];
    
}
- (void)initContentView
{
    //初始化标题
    self.titleArray = [NSArray arrayWithObjects:
                       @"姓名:",
                       @"年绩:",
                       @"家乡:",
                       @"介绍:",
                       nil];
    
    self.contentArray = [NSArray arrayWithObjects:
                         @"李华",
                         @"23",
                         @"河北",
                         @"我叫李华,今年23,来自河北,希望大家多多欢迎,喜欢计算机,来自河北的一个学校.111111111111111111111111111",nil];
    
    //添加列表
    myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.bounds.size.height) style:UITableViewStylePlain];
    [myTableView setDelegate:self];
    [myTableView setDataSource:self];
    [myTableView setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:myTableView];
}
#pragma mark - tableview delegate and dataSoucre

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString* identifier = @"cell";
    
    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
        
        [cell setBackgroundColor:[UIColor clearColor]];
        
        //cell白色背景
        UIImage* bcImg = [UIImage imageNamed:@"label"];
        UIImageView* bcImgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(cell.frame), CGRectGetHeight(cell.contentView.frame))];
        [bcImgV setImage:bcImg];
        [cell.contentView addSubview:bcImgV];
        
        //cell中的内容
        RTLabel* nameLabel = [[RTLabel alloc] initWithFrame:CGRectMake( 10, 15, 300 , 15)];
        [nameLabel setText:[NSString stringWithFormat:@"<font face=‘Helvetica‘ size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]];
        CGSize optimumSize = [nameLabel optimumSize];
        [nameLabel setFrame:CGRectMake( 10, 15, 300 , optimumSize.height)];
        [nameLabel setBackgroundColor:[UIColor clearColor]];
        [cell.contentView addSubview:nameLabel];
        
        [bcImgV setFrame:CGRectMake(0, 0, 320, 30 + optimumSize.height)];
    }
    return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    RTLabel *label = [[RTLabel alloc] initWithFrame:CGRectMake(10,10,300,100)];
    //[label setFont:[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:20]];
    [label setParagraphReplacement:@""];
    [label setText:[NSString stringWithFormat:@"<font face=‘Helvetica‘ size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]];
    CGSize optimumSize = [label optimumSize];
    
    return 30 + optimumSize.height;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.titleArray.count;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
技术分享

【代码笔记】iOS-cell自动变化大小

标签:setfont   ctr   oid   use   计算机   eth   img   array   ini   

原文地址:http://www.cnblogs.com/yang-guang-girl/p/6654420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!