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

一,效果图。

二,工程图。

三,代码。

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

时间: 2024-12-23 04:36:09

【代码笔记】iOS-cell自动变化大小的相关文章

如何让一个div的大小,从某一个特定值开始,随内容的增加而自动变化?

简单来说,有一个div,它的width是固定的.现在设置它的height值.height有一个最小的临界值,比如100px如果这个div里面的内容太少,达不到100px这个height值,那么div的height就设置为100px,如果这个div里面的内容太多,超过了100px,那么div的height就随着内容的多少自动变化. 怎样实现才能这样设置height的值??(div里面的内容是直接用<%=rs("content")%>来读取的,所以,在生成html代码之前,不可

iOS AutoLayout自动布局中级开发教程(4)-label等文字自动适应大小,宽度

相比大家会经常遇到  label  或则  textfield等显示文字的  视图时,显示不全,或者无法自动 变化长度  ,自动改变字体的 设置: 今天给大家演示一下,如何 在autolayout让label 适应 不同的 宽度: 1.自动 改变字体: 首先设置好 label 的约束,包括宽高之后,默认来看 你的  label是不变了 ,但是 当遇到 文字较多时,就会出现显示不全的问题: 如图,我们设置好 Label的宽度和高度,和其他约束,固定住 label, 这是我们增加label的字数..

WWDC 2014 Session笔记 - iOS界面开发的大一统

本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What's New in Cocoa Touch Building Adaptive Apps with UIKit What's New in Interface Builder View Controller Advancements in iOS 8 A Look Inside Presentation Controllers iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple

Web开发者和设计师必须要知道的 iOS 8 十个变化

概述 简介 iOS 8 上的 Safari 的更新 iPhone 6 和 iPhone 6 Plus 新 Api 支持 Safari 新功能和支持 iOS 8 原生优化 Safari 插件 新的设计 视频增强 iOS 8上的JS Bug 和问题 已经习惯了苹果官方的高冷,这次,苹果依旧没有更新任何与 Safari 或者 iOS 相关的文档,所以下面的所有数据和资料都是基于我自己的测试和 WWDC 上公布的信息. iOS 8 上的 Safari 支持HTML5新APIs: WebGL (3D ca

[转]Web开发者和设计师必须要知道的 iOS 8 十个变化

概述 简介 iOS 8 上的 Safari 的更新 iPhone 6 和 iPhone 6 Plus 新 Api 支持 Safari 新功能和支持 iOS 8 原生优化 Safari 插件 新的设计 视频增强 iOS 8上的JS Bug 和问题 已经习惯了苹果官方的高冷,这次,苹果依旧没有更新任何与 Safari 或者 iOS 相关的文档,所以下面的所有数据和资料都是基于我自己的测试和 WWDC 上公布的信息. iOS 8 上的 Safari 支持HTML5新APIs: WebGL (3D ca

基于MVC+EasyUI的Web开发框架经验总结(17)--布局和对话框自动适应大小的处理

在我自己的<Web开发框架>中,用了很多年的EasyUI,最新版本EasyUI为1.4.5,随着版本的更新,其很多功能得到了很大的完善和提高,同时也扩展了一些新的功能,以前在布局和对话框弹出层的自动适应大小的问题,也在最近的一些版本得到了解决,本文在迁移到最新EasyUI版本的时候,总结了一些经验,希望对大家使用这个强大的Web界面组件有所帮助. 1.Web主界面的布局调整 上面的布局是顶部内容+一级菜单.左边菜单,右边主内容为页面内容,页面内容是变化的内容,其他部分为不变的,这样的布局代码如

减小iOS应用程序的大小

减小iOS应用程序的大小 本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相关技巧(当第一次下载和安装程序时).如果是针对升级程序的话,可以看这篇文章(减小iOS应用程序升级时所需下载的大小)(这与第一次安装使用的工作原理有所不同). 检查应用程序 首先是检查.app bundle,看一下程序包里面哪些文件占的空间最大. 在做任何相关优化之前,我们需要做一些权衡.通过权衡,

在iOS上自动检测内存泄露

手机设备的内存是一个共享资源.应用程序可能会不当的耗尽内存.崩溃,或者遭遇大幅度的性能降低. Facebook iOS客户端有很多功能,并且它们共享同一块内存空间.如果任何特定的功能消耗过多的内存,就会影响到整个应用程序.这是可能发生的,比如,这个功能导致了内存泄露. 当我们分配了一块内存,并设置了对象之后,如果在使用完了之后忘记释放,这就会发生内存泄露.这意味着系统是无法回收内存并交予他人使用,这也最终意味着我们的内存将会逐渐耗尽. 在Facebook,我们有很多工程师在代码库的不同部分上工作

用python编写ios工程自动编译、打包ipa等脚本

第一次使用python请先看:http://my.oschina.net/LangZiAiFer/blog/298763 代码管理我用的是Git: 工程clone如下: def gitClone(): os.system ('git clone https://[email protected]/xxx/goccia.git ~/desktop/20140804') return https://[email protected]/xxx/goccia.git是git服务器路径,不必care:~