• 【代码笔记】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
    复制代码
  • 相关阅读:
    matlab读取不规则txt文件
    ImportError: No module named python_util.util
    Check failed: error == cudaSuccess (2 vs. 0) out of memory
    Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal
    求助 一个很简单的ACM题 java代码 自己电脑上测都是正确的 但提交总是wrong answer 先谢谢了
    1151Word Reversal ACM题答案 java版
    1051A New Growth Industry ACM题答案 java版
    1115Digital Roots ACM题答案 java版
    1049 I Think I Need a Houseboat ACM题答案 java版
    java.sql.SQLException:Access denied for user 'root'@'localhost' (using password:YES) mysql开发
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/6654420.html
Copyright © 2020-2023  润新知