本文主要讲的是把UItableviewCell左划删除替换成自定义的图片;
首先,需要自定义cell,然后在cell的.m文件里重写- (void)layoutSubviews
自定义cell.m的代码如下:
- (void)layoutSubviews
{
[super layoutSubviews];
UIView *view = nil;
for (UIView *subview in self.subviews)
{
if ([subview isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")])
{
view = subview;
if (view.subviews.count)
{
UIButton *button = view.subviews[0];
if (button)
{
button.backgroundColor = [UIColor cyanColor];
[button setImage:[UIImage imageNamed:@"myBg"] forState:UIControlStateNormal];
button.imageEdgeInsets = UIEdgeInsetsMake(0, 15, 0, 0);
}
}
}
}
}
说明一下,设置button
的image
后位置还是有偏差的,所以用了imageEdgeInsets
调节了按钮图片的位置,具体应该调多少,可以根据自己的需求。
在controller
中实现代码的时候,如果想要调节删除视图的宽度,可以通过- (NSString*)tableView(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
这个方法来调节。
最后上一张效果图
写的不好,请大家多多包涵,如有错误,欢迎指正。
网友评论