我有一个带有UIImageView的原型单元格。
我想把它准确地放在屏幕的左边缘(默认情况下它们之间没有空格)。
第一张照片是我的(默认的tableView和单元格),第二张是我尝试做的。
无论我在frame
上尝试(bounds
,CGAffineTransform
,cell.imageView
),边缘和图像之间总会有一个空格,它是' s像iOS一样阻止这种行为。
我没有使用AutoLayout,并希望以编程方式执行此操作。
解决方案
#import "ResultCell.h"
@implementation ResultCell
-(void) layoutSubviews {
[super layoutSubviews];
self.imageView.frame = CGRectMake(-10,0,10,10);
}
@end
有关详细信息,请参阅@matt答案。
答案 0 :(得分:2)
它像iOS一样阻止了这种行为
你是对的。您正在重新定位图像视图,但随后单元格正在进行并将其再次放回layoutSubviews
。
解决方案是使用覆盖layoutSubviews
的自定义单元格类。例如:
class MyCell : UITableViewCell {
override func layoutSubviews() {
super.layoutSubviews()
self.imageView!.frame.origin.x = 0
}
}
当然,您必须做出各种其他安排,以确保MyCell实例实际上使用而不是默认的UITableViewCell。但这仍然是读者的练习!