AutoLayout早在iOS6.0+就已经出现,但一直没有得到广泛应用(私有观点>_<...),究其原因:1、以前果机iPhone的尺寸单一,3.5或4.0英寸,不用过多的适配,即使需要的时候几行代码就可以搞定;2、AutoLayout不如纯代码来的直接,界面化的布局工具让初次使用者摸不着头脑。
但随着果机的硬件尺寸越来越多使得代码里的if...else...也越来越多。最后结果就成了这样:
当硬着头皮使用xib或storyBoard一段时间后,就会慢慢爱上它。尽管它的简称是SB。
#pragma mark -- 进入正题 --
设置合适的布局约束可以让UITableViewCell自己确定高度,这对于内容不同高度就不同的Cell很方便,省去了手动(写代码)计算cell高度的麻烦。先看一下最终的效果图:
(1)粉红色的Lbl的高度随内容的增多而变高。(2)下面红色和蓝色的Lbl的宽高一定、距离粉红色的Lbl 的距离一定。(3)左右的Btn(萌萌的呆贼)始终位于cell的中间。(4)底部的黑线,两边的黑线位于cell的三个边上。
step_1、创建带有Xib 的UITableViewCell——Text8Cell(勾选Also create XIB file.)将所需控件添加到contentView上:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.m_dataSourceArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
Text8Cell *cell = [tableView dequeueReusableCellWithIdentifier:@"Text8Cell"];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"Text8Cell" owner:nil options:nil] lastObject];
}
cell.m_numberStringLbl.text = self.m_dataSourceArray[indexPath.row];
cell.m_typeStringLbl.text = @"test type";
cell.m_countStringLbl.text = @"test count";
return cell;
}
这里的m_dataSourceArray是一个简单字符串数组。