iOS开发,UITableView相关问题

第一条:UITableViewCell 内容的设置

//文本放到最后

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_dataArr.count - 1 inSection:0];

[_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

//刷新指定cell

NSIndexPath *indexPath_3=[NSIndexPath indexPathForRow:0 inSection:2];

NSArray *indexArray3=[NSArray arrayWithObject:indexPath_3];

[self.tableview reloadRowsAtIndexPaths:indexArray3 withRowAnimation:UITableViewRowAnimationAutomatic];

第二条:UITableViewCell分割线左边部分缺少一些的解决方法

-(void)viewDidLayoutSubviews {

  if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {

    [self.tableView setSeparatorInset:UIEdgeInsetsZero];

  }

  if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)])  {

    [self.tableView setLayoutMargins:UIEdgeInsetsZero];

  }

}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

  if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

    [cell setLayoutMargins:UIEdgeInsetsZero];

  }

  if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

    [cell setSeparatorInset:UIEdgeInsetsZero];

  }

}

第三条:UITableView的分割线部分不显示的问题?

simulator -> debug -> optimize rendering for window scale 取消打勾就好

第四条: 自定义cell分割线大致用到的两种方法

a、把自定义的分割线当成一个View放到cell的contentView上,一定要注意重用问题,所以这个view 要在cell初始化的时候添加上。示例代码如下:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #6122ae }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3e1e81 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; min-height: 21.0px }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421 }
span.s1 { }
span.s2 { color: #6122ae }
span.s3 { color: #000000 }
span.s4 { color: #c42275 }
span.s5 { color: #c81b13 }
span.s6 { color: #703daa }
span.s7 { color: #3e1e81 }
span.s8 { color: #0435ff }

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath * )indexPath{

   UITableViewCell *cell =nil;

  cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];

   if (cell ==nil) {

   cell= [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];

    cell.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"huicellacce"]];  

  cell.backgroundColor = [UIColor clearColor];

          //cell.selected = YES;

       UIImageView *imageViewSepE = [[UIImageView alloc]initWithFrame:CGRectMake(47, 49, 200, 1)];

    imageViewSepE.image  = [UIImage imageNamed:@"godline"];

          [cell.contentView addSubview:imageViewSepE];

   }

   return cell;

  }

b、比较复杂,用到了底层的框架

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3e1e81 }
span.s1 { }
span.s2 { color: #c42275 }
span.s3 { color: #703daa }
span.s4 { color: #000000 }
span.s5 { color: #6122ae }
span.s6 { color: #3e1e81 }
span.s7 { color: #0435ff }
span.s8 { color: #1e9421 }
span.s9 { font: 18.0px "PingFang SC"; color: #1e9421 }

  - (void)drawRect:(CGRect)rect {

   CGContextRef context = UIGraphicsGetCurrentContext();

   CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); CGContextFillRect(context, rect);

   CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);

   CGContextStrokeRect(context, CGRectMake(5, -1, rect.size.width - 10, 1)); //下分割线

   CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

   CGContextStrokeRect(context, CGRectMake(5, rect.size.height, rect.size.width - 10,1));

  }

第五条: 用代码的方式自定制cell,必须写initWithStyle的方法

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier{

  self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

  if (self) {

    /*** 这里写要添加控件   ***/

 }

  return self;

}

【iOS开发TableView】TabelView自定义cell

第一种:通过创建xib文件。

①首先创建xib文件

②创建xib文件对应 的模型A,名字与xib文件一样,并继承UITableViewCell类,并实现cellWithTableView的构造方法。

③在interface builder里更改xib文件默认的类,为第二步创建的模型类。

④创建数据模型B,并且A中包含数据模型B

⑤A通过懒加载B方法(就是重写B对象的setter方法)将控件赋值。

第二种:代码自定义cell

①新建一个继承UITableViewCell的类,里面拥有frame模型

②重写initWithStyle:reuseIdentifier:方法(添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中,还有添加属性设置).

③建立数据模型

④建立frame模型(拥有数据模型)

⑤重写数据模型对象的setter方法,然后再里面设置控件大小,和cell的高度。

⑥控制器拥有frame对象数组。出事Cell的时候直接赋值给cell.frame对象就行。

第六条:iOS开发 - 让tableView不能下拉刷新,可以上拉加载

1. 首先遵循代理  UIScrollViewDelegate

2.实现代理方法即可

-(void)scrollViewDidScroll:(UIScrollView

*)scrollView{

if (tabelView.contentOffset.y <= 0) {

tabelView.bounces = NO;

}else {

tabelView.bounces = YES;

}

}

第七条:去除UITableView底部多余行及分割线

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

时间: 2024-10-30 21:52:38

iOS开发,UITableView相关问题的相关文章

iOS开发 UITableView的方法和属性总结

本文描述UITableView的各种方法,属性,委托以及数据源.本文的目的只是总结UITableView的用法,详细的例子另撰文描述. 1 数据源  UITableViewDataSource协议 01 返回组(节)的个数,默认是返回1,如果只有1组数据,可以不用实现该方法. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 02 返回某一组的行数,该组由section的值决定 - (NSInteger)table

IOS开发UITableView性能应用技巧TableViewCell的重用

?iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存.要解决该问题,需要重用UITableViewCell对象??重用原理:当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用.当UITableView要求dataSource返回UITableViewCell时,dataSource会先查看这个对象

iOS开发UITableView基本使用方法总结

本文为大家呈现了iOS开发中UITableView基本使用方法总结.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITableViewDataSource:然后 UITableView对象的 delegate要设置为 self:然后就可以实现这些delegate的一些方法拉. UITableView基本使用方法 1.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITable

iOS开发传感器相关

手机里面内置了很多的传感器,例如:光传感器,湿度传感器,温度传感器,距离传感器等等 //开发传感器相关的东西必须使用真机 //在螺旋仪和加速计所有两种方式push和pull的方式,push的方式是时时检测,pull的方式是需要时获取检测值 /* 加速计push的使用步骤: 1.创建运动管理者 _mgr = [[CMMotionManager alloc] init]; 2.判断手机加速计是否可用 if (!self.mgr.isAccelerometerAvailable) { NSLog(@"

iOS开发-UITableView自定义Cell

UITableView在iOS中开发的重要地位是毋庸置疑的,基本上应用中用到的比例是一半左右,而且大部分情况都是需要自定义单元格的,这样用户看到的App才能更有美感.之前写过UITableView的基本用法,如果对UITableView不是很熟悉可以参考本人之前的博客,因此很多UITableView的知识点就默认你已经熟悉了,先看下自定义实现的效果,这是自定义的Cell最后展现的效果: 自定义Cell 1.首先新建一个CustomCell.xib文件,方式如下: 2.新建一个继承自UITable

iOS开发证书相关(简述)

一.开发者账号分类 一般分为个人的.企业的.商业的三种,详细自己百度. 二.Certificates 证书.Identifiers 标示符.Profiles 描述文件 的简介 1.证书(Certificates) 即安装在电脑上,只有安装了证书的电脑,才有可能进行真机调试. - All - Develpment 开发的证书 - 最多可以有两个证书 - Production 商品化的证书,上架,发布 举例:申请开发者证书步骤 (1)登陆苹果开发者主页 https://developer.apple

iOS开发-UITableView单选多选/复选实现1

TableView如何实现单选或者多选呢? 我们的直接思路是修改某一个Cell的样式即可, 那么修改样式需要通过修改对应的数据, 从这里可以推断我们需要给Cell对应的数据设置一个标志位, 当选中的时候来修改该标志位刷新那一行即可 如果是单选实现稍微复杂一些: 单选需要设置一个属性来保存上一次选中的行, 待选中新的行之后需要修改该行,不断维护 我的实现如下: (1)创建一个TableViewController, 为了简单使用系统的Cell样式 设置重用标识符为 ACELL cell对应的Mod

iOS开发-UITableView表格优化

之前的一篇文章大概讲述了一下UITableView的使用,UITableView在iOS的地位和ListView在Android中的地位基本上算是不相上下,关于ListView的优化网上的也有很多文章.UITableView苹果公司本身就已经优化了其中的功能,不管你有多少数据,每次加载的时候只是加载当前页面的数据,以免造成不必要的内存占用.一个非常常见的优化就是使用Identifier,也就是唯一标示,将页面中不用的对象放在缓存池中,如果有新的对象出现从缓存池中取出. 页面布局 页面布局还是跟上

iOS开发UITableView的动画cell

1.动画cell 针对cell的动画,在Delegate中对cell的layer进行操作: 2.实现代码 #import "ViewController.h" #import "TableViewCell.h" #define CScreenWidth [[UIScreen mainScreen] bounds].size.width #define CScreenHeight [[UIScreen mainScreen] bounds].size.height @