自动布局在Cell中的运用

首先创建,使用sb创建tableviewcontroller,然后在这个view中使用cell,写一个cell,然后创建cell相关的代码,绑定!

简单地步骤我就省略了,因为有代码有真相,

先看图吧!

然后来看下这个项目的目录结构

做到这里,我们已经能读取完plist中的json文件然后将cell加载出来,

然后我们对cell中的uiimageview,laber建立约束,

注意一点,我们可以按住uiimageview 往 背部的cell拖,这时候就有一些选项,勾选自己需要的,一般是top、left。建立约束,如图

然后我们还可以将约束拖到文件里,建立连线。就像laber一样建立连线,然后可以手动用代码设置这个约束的高度了,如图

然后我们就可以在tableview中操作了

<!-- lang: cpp -->
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

{

return 200;

}

-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath

{

PYTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
cell.wb = self.weiboList[indexPath.row];
[cell layoutIfNeeded];

CGSize size = [cell.desc systemLayoutSizeFittingSize:UILayoutFittingExpandedSize];
return size.height + cell.desc.frame.origin.y + 20 + cell.imgHight.constant;

}

当然,我写的你肯定是有些不解的,看下我的代码吧,代码才是王道!!!嘻嘻

github地址:https://github.com/pyawkk/-cell-.git

时间: 2024-11-03 16:43:06

自动布局在Cell中的运用的相关文章

Swift设置Table View的Cell中Lable自适应内容高度的

@IBOutletweak var myTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() myTableView.estimatedRowHeight = 44.0 myTableView.rowHeight =UITableViewAutomaticDimension } 最后修改在Table Cell中Label的lines属性,将其设置为0.

iOS 在tableview的cell中的button上,添加选中状态的解答

大家都知道tableview的复用当然不知道的话可以个我留言或者在网上找  在这我就不多说了: 红色就是选中状态,但是这时候我们会发现往下拉当cell消失后出来新的cell中的button也是选中状态.话不多说下面上解决方法的代码! -(NSMutableArray *)boolArr{ //创建一个数组在这里数组中的NSNumber对象的下标是于 indexPath一一对应的这里我给他一百个根据自身的情况赋值 if (_boolArr==nil) { NSMutableArray *arr =

关于cell中添加子视图 复用重叠问题的解决方法

问题本质: 因为你要添加的子视图并不是在自定义的cell中实现的,而是根据系统给的UITableViewCell这个类创建的实例,每次进图 cellForRow方法都会创建一个cell,每次都要创建一个子视图添(button,label之类的)加进去,会给占用很大的内存,所以采用了复 用的方法,但是问题就来了,当cell超出界面,从队列中拿过来复用的时候,其中子视图的内容并没有消除,这样你会原来的基础上再创建一个子视图添加上去 遮住了原来的视图,一般视图都是透明的这样的话就变成了一层层的叠加.

重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件

为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某些控件可以直接在tableView:cellForRowAtIndexPath:方法中直接实现,我们需要判断外部变量比如bool值来决定是否显示这个控件,但需要额外的代码写在tableView:cellForRowAtIndexPath:方法当中,如果我们把bool值传递给该cell让其自己判断是否显示隐藏这个控件,可读性将会大幅增加:) 效果: 源码: YXCell.h // // YXCell.

iOS高级开发——CollectionView的cell中按钮的点击实现

在我刚初学iOS的时候,我就问一些大神,iOS开发中最难的哪些部分.有些人就说是自定义控件.UI和交互设计.那个时候我将信将疑,随着自己开发的深入,自己的确是深有体会.开发一款App产品,很大一部分时间是在和UI打交道.因为开发中很多功能是直接封装好的或者有现成模板可以用的,唯有UI是根据不同的App千变万化的.所以今天我们继续来研究iOS中比较高级的控件--UICollectionView,来实现cell中按钮的点击操作.该demo我已经提交到: https://github.com/chen

iOS:一个Cell中设置另外一个Cell中的button

场景: 子类化Cell中有button,拥有选中式样,点击第一个Cell中的button后,Cell一中的button获得选中式样,但是当点击Cell二中的button时,Cell一中的button选中式样依然存在,即同时存在两个选中的button. 解决方法: 在子类化的Cell中,定义一个 static UIButton *selectedButton; 必须是 static 静态变量. 然后在点击方法中, - (void)headerButtonClickAction:(UIButton

获取cell中的button在整个屏幕上的位置

编写cell中得button点击事件 - (IBAction)showButtonClick:(id)sender { UIButton *button = (UIButton *)sender; UIWindow* window = [UIApplication sharedApplication].keyWindow; CGRect rect1 = [button convertRect:button.frame fromView:self.contentView];     //获取but

IOS 延时加载TableView中Cell中的图片

TableView中图片延时加载是本文要介绍的内容,经常我们会用tableView显示很多条目,有时候需要显示图片.但是一次性从服务器上取来所有图片对用户来浪费流量,对服务器也是负担,最好是按需加载,即当该用户要浏览该条目时再去加载经常我们会用tableView显示很多条目. 有时候需要显示图片, 但是一次从服务器上取来所有图片对用户来浪费流量,,对服务器也是负担.最好是按需加载,即当该用户要浏览该条目时再去加载它的图片. 重写如下方法 - (void)tableView:(UITableVie

cell中的文本框————bug

根据要求需要制作一个报表,我一UItableView为主体,自定义cell,在cell中添加文本框以便输入相应字段, 要求:1,当我们改变表格对应行的内容时会自动计算相应列的总和[相信大家用过Excel 原理差不多了] 我再文本框失去焦点时,调用代理方法通知UItableView的页面进行计算并刷新数据源和表格 bug:导致文本框不能正常的获取焦点,但我们页面上已经有获取焦点的文本框时,又去点击另外的文本框,此时新的文本框不能获取焦点,但会弹出键盘,且键盘无法收起,通过监听文本框的代理发项,文本