iOS 动态改变cell的高度_ios开发-动态增加或者删除cell并自动增加变化高度-程序员宅基地

技术标签: UITableVIew 表示图  

#import "ViewController.h"
 
@interface ViewController ()
{
    UITableView *_table;
    NSMutableArray *_dataList;
    UIView *footView;
}
@end
 
@implementation ViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    _table=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    _table.delegate=self;
    _table.dataSource=self;
    //_table.multipleTouchEnabled=YES;
    [self.view addSubview:_table];
    _dataList=[[NSMutableArray alloc]initWithObjects:@"1111\n111\n111\n111\n",@"222",@"333",@"444",@"555",@"666",@"777", nil];
    footView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 80)];
    footView.backgroundColor=[UIColor yellowColor];
    _table.tableFooterView=footView;
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
 
#pragma mark - UITableView 
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [_dataList count];
}
 
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
 static NSString *CellIdentifier = @"Cell";
 
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 if (cell == nil) {
 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
 UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
 label.tag = 1;
 //label.lineBreakMode = UILineBreakModeCharacterWrap;
 label.lineBreakMode=NSLineBreakByCharWrapping;
 label.highlightedTextColor = [UIColor whiteColor];
 label.numberOfLines = 0;
 label.opaque = NO; // 选中Opaque表示视图后面的任何内容都不应该绘制
 label.backgroundColor = [UIColor clearColor];
 [cell.contentView addSubview:label];
 
 }
 
 UILabel *label = (UILabel *)[cell viewWithTag:1];
 NSString *text;
 text = [_dataList objectAtIndex:indexPath.row];
 CGRect cellFrame = [cell frame];
 cellFrame.origin = CGPointMake(0, 0);
 
 label.text = text;
 CGRect rect = CGRectInset(cellFrame, 2, 2);
 label.frame = rect;
 [label sizeToFit];
 if (label.frame.size.height > 46) {
 cellFrame.size.height = 50 + label.frame.size.height - 46;
 }
 else {
 cellFrame.size.height = 50;
 }
 [cell setFrame:cellFrame];
 
 return cell;
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
 return cell.frame.size.height;
 }
 
@end
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/saw471/article/details/50599862

智能推荐

使用YOLOX进行物体检测_yolox 刀具-程序员宅基地

文章浏览阅读1.4k次。YOLOX 是旷视开源的高性能检测器。旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。其中YOLOX-L版本以 68.9 FPS 的速度在 COCO 上实现了 50.0% AP,比 YOLOv5-L 高出 1.8% AP!还提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本,本文将详细介绍如_yolox 刀具

一文搞懂 UML 类图!!!_uml类图-程序员宅基地

文章浏览阅读2.9k次,点赞27次,收藏45次。统一建模语言UML类图是一种用于描述系统结构的图形化工具。它以类和对象为基础,主要用于表示系统中的类、接口、继承关系、关联关系等元素,以及它们之间的静态结构和关系。在本文中,将深入介绍UML类图的基本元素关系类型以及如何创建一个简单而有效的类图。类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。类图用来描述系统中有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等,是对现实世界中事物的抽象。_uml类图

Python数据分析之使用pandas-datareader获取国家经济信息进行分析-程序员宅基地

文章浏览阅读4.2k次,点赞4次,收藏26次。pandas-datareader背景介绍当熟悉了Pandas的两个主要数据结构:Series和DataFrame之后,我们就可以使用pandas-datareader进行金融财经数据的导入和初步分析了。pandas-datareader是基于Python的专门从一系列的公开在线数据库获取数据的工具库,该接口在urllib3库基础上实现了以客户端身份访问在线数据库的各类金融财经股票数据。相关参考网站官网官方文档GIT源码安装pandas-datareader可以使用标准的pip进_pandas-datareader

关于计算机职业发展方向,计算机专业的职业发展方向有哪些-程序员宅基地

文章浏览阅读860次。原标题:计算机专业的职业发展方向有哪些很多人都知道计算机是最近几年 比较热门的专业之一,其中薪资高待遇好是很多年轻人加入该行业的原因,但还有一些人会担心计算机专业的未来,毕竟这股“热潮”在互联网行业大裁员中变成让互联网人感觉压力山大的“寒潮”。究竟计算机的未来如何,小编不敢吹嘘说很好,但我相信计算机行业的未来肯定不会差,而且对计算机人才会越来越重视。 我们经常会听到有人说程序员是吃青春饭的,真是这..._机算机职业发展

词典编码:LZ77算法(C/C++)_lz77编码例题详解-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏27次。一、基本思想用指向早期曾经出现过的字符串的指针来表示当前被编码的字符串,如:二、LZ77算法算法伪码:示意图:举例:三、C\C++实现#include <iostream>#include <vector>#include <string>using namespace std;struct code { int off; i..._lz77编码例题详解

Java基础进阶多线程概述_一个进程可以启动多个线程,比如:对于java程序来说-程序员宅基地

文章浏览阅读6.3k次。CPU的处理速度极快,多个线程之间频繁切换执行,跟人来的感觉是:多个事情。不能够做到真正的多线程并发,但是可以做到给人一种“多线程并发”的感觉。对于单核的CPU来说,在某一个时间点上实际上只能处理一件事情,但是由于。线程A和线程B频繁切换执行,人类会感觉音乐一直在播放,游戏一直在运行,一根钢针扎到手上,到最终感觉到疼,这个过程是需要“很长的”时间的,在。我在窗口1购票,你可以在窗口2购票,你不需要等我,我也不需要等你。人类的眼睛产生了错觉,感觉是动画的。一个是垃圾回收线程,一个是执行main方法的主线程。_一个进程可以启动多个线程,比如:对于java程序来说

随便推点

数据可视化——Matlab平台gramm工具箱绘制散点相关图_gramm工具箱画图-程序员宅基地

文章浏览阅读6k次,点赞6次,收藏30次。数据可视化——Matlab平台gramm工具箱绘制散点相关图概述:基于matlab平台的gramm工具箱绘制散点相关图使用的工具箱:gramm。gramm工具箱使得matlab平台的图形绘制能力更加强大,绘制出的图形更美观,同时,绘制图形需要设置的参数相对较少。gramm工具箱可在以下链接中下载:https://github.com/piermorel/gramm将下载好的工具箱解压之后,通..._gramm工具箱画图

Rxjava3文档级教程一: 介绍和基本使用-程序员宅基地

文章浏览阅读3.9w次,点赞33次,收藏175次。一 Rxjava3简介RxJava是响应式编程(Reactive Extensions)的java实现,它基于观察者模式的实现了异步编程接口。Rxjava 3.x 的github官网RxJava2将被支持到2021年2月28日,错误的会同时在2.x和3.x修复,但新功能只会在3.x上添加。Rxjava 3.0的一些改变:官方WikiRxjava 3.x 文档可以在官方javad..._rxjava

hssfrow 单元格样式_POI设置excle单元格样式-程序员宅基地

文章浏览阅读124次。public class ExcelTest {/*** @param args*/public static void main(String[] args) throws IOException {try {HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFCellS..._hssfrow.setcellstyle

python解析http数据包_python如何解析HTTP返回的标准数据包-程序员宅基地

文章浏览阅读1.5k次。该篇内容由个人博客点击跳转同步更新!转载请注明出处!前言最近有一个需求需要频繁调用xx接口,但这个接口调用次数一多就会给你禁掉,而且一禁就是禁一天的那种,只能通过界面模拟用户操作抓取数据包,然后单独对这些数据包进行处理具体步骤首先看下需要格式化的数据包长什么样 数据包这就是完整的一个数据包,网上基本都是格式化json数据包的,但返回的内容中还包含了头信息等所以不能简单的通过json来格式化,..._python解析http.client.httpresponse

uni-app修改button按钮样式_uniapp按钮样式怎么改-程序员宅基地

文章浏览阅读1.7k次。uni-app修改button按钮样式_uniapp按钮样式怎么改

9、数据采集系统Flume配置安装_修改文件,配置文件flume-env.sh-程序员宅基地

文章浏览阅读200次。Flume配置安装Flume是Cloudera提供的一个高可用的,高可靠的、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume特点如下:Flume可以高效率的将多个网站服务器中收集的日志信息存入HDFS/HBase中Flume可以将从多个服务器中获取的数..._修改文件,配置文件flume-env.sh

推荐文章

热门文章

相关标签