当前位置 : 主页 > 手机开发 > ios >

ios – UITableViewRowAction自定义样式?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我想编辑我的表的UITableViewRowAction.我的单元格有圆角和边框,我想编辑RowAction的样式以匹配我的单元格样式. 据我所知,目前只能更改backgroundColor,title和style(默认,破坏性,正常……)(link).但
我想编辑我的表的UITableViewRowAction.我的单元格有圆角和边框,我想编辑RowAction的样式以匹配我的单元格样式.

据我所知,目前只能更改backgroundColor,title和style(默认,破坏性,正常……)(link).但是,我觉得这有点太受限制了?也许我可以继承UITableViewRowAction来创建我自己的外观和感觉?任何意见,将不胜感激.

不幸的是我无法发布示例图像,因为我还没有10个代表(哈哈).但是我觉得这个问题很简单,没有视觉表现就能被理解.

正如您所说,您可以在行动中改变的唯一事项是:

> backgroundColor
>风格(破坏性(红色backgroundcolor,…)
>标题

为了改变UITableViewRowAction的风格,可能的解决方案是使用’patternimage’添加图像.

这是解决方案.我并不是说这是确切的解决方案,因为现在我们无法访问’UITableViewRowAction’的所有属性

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewRowAction *moreAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"test" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

    // show UIActionSheet
}];
float wwidth =[moreAction.title sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:15.0]}].width;
wwidth = wwidth+<55 change this value for exact width>;
moreAction.backgroundColor = [[UIColor alloc] initWithPatternImage:[self imageWithImage:[UIImage imageNamed:@"temp.jpg"] scaledToSize:CGSizeMake(wwidth, tableView.rowHeight)]];

UITableViewRowAction *flagAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Flag" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
    // flag the row
}];
flagAction.backgroundColor = [UIColor yellowColor];

return @[moreAction, flagAction];
}

注意:使用高分辨率图像以使其适用

iPhone 6 Plus   736x414 points    5.5"
iPhone 6        667x375 points    4.7"
iPhone 5        568x320 points    4.0"
iPhone 4        480x320 points     3.5"

这个链接有用的帖子http://pablin.org/

网友评论