zoukankan      html  css  js  c++  java
  • 【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        // 列寬
        CGFloat contentWidth = self.tableView.frame.size.width;
        // 用何種字體進行顯示
        UIFont *font = [UIFont systemFontOfSize:13];
       
        // 該行要顯示的內容
        NSString *content = [data objectAtIndex:indexPath.row];
        // 計算出顯示完內容需要的最小尺寸
        CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap];
       
        // 這裏返回需要的高度
        return size.height;
    }

    // Customize the appearance of table view cells.
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
       
        static NSString *CellIdentifier = @"Cell";
        // 列寬
        CGFloat contentWidth = self.tableView.frame.size.width;
        // 用何種字體進行顯示
        UIFont *font = [UIFont systemFontOfSize:13];
       
        // 該行要顯示的內容
        NSString *content = [data objectAtIndex:indexPath.row];
        // 計算出顯示完內容需要的最小尺寸
        CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap];
       
        // 構建顯示行
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
       
        CGRect rect = [cell.textLabel textRectForBounds:cell.textLabel.frame limitedToNumberOfLines:0];
        // 設置顯示榘形大小
        rect.size = size;
        // 重置列文本區域
        cell.textLabel.frame = rect;
       
        cell.textLabel.text = content;
       
        // 設置自動換行(重要)
        cell.textLabel.numberOfLines = 0;
        // 設置顯示字體(一定要和之前計算時使用字體一至)
        cell.textLabel.font = font;

        return cell;
    }
    本文转自http://mrjeye.iteye.com/blog/1045785


    文章来源:http://blog.csdn.net/csj1987/article/details/6662852

     
    1. //初始化label  
    2. UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];  
    3. //设置自动行数与字符换行  
    4. [label setNumberOfLines:0];  
    5. label.lineBreakMode = UILineBreakModeWordWrap;   
    6. // 测试字串  
    7.  NSString *s = @"这是一个测试!!!adsfsaf时发生发勿忘我勿忘我勿忘我勿忘我勿忘我阿阿阿阿阿阿阿阿阿阿阿阿阿啊00000000阿什顿。。。";  
    8. UIFont *font = [UIFont fontWithName:@"Arial" size:12];  
    9. //设置一个行高上限  
    10. CGSize size = CGSizeMake(320,2000);  
    11. //计算实际frame大小,并将label的frame变成实际大小  
    12.  CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];  
    13. [label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)]; 
  • 相关阅读:
    Appium python环境搭建
    打印各种三角形 正方形
    python学习笔记之---多进程实例
    selenium简介及发展
    python使用selenium自动化实现126邮箱登录的简单实例
    使用多进程访问网址的实例
    python学习笔记之---多进程【理论】
    爬虫设置定时任务
    python中eval和exec用法比较
    python使用文件处理加函数的方式写ATM简易操作
  • 原文地址:https://www.cnblogs.com/jz319/p/3781367.html
Copyright © 2011-2022 走看看