我已经浏览了这个问题,它展示了以下代码:
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @"Sagar";
}
如果我想要一个自定义的图片代替默认的红色按钮怎么办?
我已经浏览了这个问题,它展示了以下代码:
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @"Sagar";
}
如果我想要一个自定义的图片代替默认的红色按钮怎么办?
在自定义单元格中实现此方法
- (void)willTransitionToState:(UITableViewCellStateMask)state{
[super willTransitionToState:state];
if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) {
for (UIView *subview in self.subviews) {
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)];
[deleteBtn setImage:[UIImage imageNamed:@"delete.png"]];
[[subview.subviews objectAtIndex:0] addSubview:deleteBtn];
[deleteBtn release];
}
}
}
}
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
[super willTransitionToState:state];
if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask)
{
if (!IS_IOS_7){
for (UIView *subview in self.subviews)
{
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"])
{
// hide original button
[[subview.subviews objectAtIndex:0] setHidden:YES];
// show my custom button
[self.deleteButton setHidden:NO];
}
}
} else {
for (UIView *subview in self.subviews) {
for (UIView *subview2 in subview.subviews) {
if ([NSStringFromClass([subview2 class]) rangeOfString:@"Delete"].location != NSNotFound) {
// hide original button
[subview2 setHidden:YES];
// show my custom button
[self.deleteButton setHidden:NO];
}
}
}
}
} else {
// hide my custom button otherwise
[self.deleteButton setHidden:YES];
}
}
[cell.deleteButton addTarget:self action:@selector(deleteEntryAtIndexPath:) forControlEvents:UIControlEventTouchUpInside];
cellForRowAtIndexPath
中,当点击删除按钮时您可以添加任何您想要的内容。以下是我的结果:
根据您在luvieere答案评论中的说法,用于意图进行列表深入操作的系统范围标准应该是使用详细信息披露(蓝色圆圈箭头)单元格附件,而不是滑动手势。
话虽如此,如果您仍想使用滑动操作,则无法提供自己的按钮,除非手动拦截并完全重新实现滑动手势,就像Tweetie所做的那样。
luvieere是正确的 - 如果您想要相同的“删除”隐喻,您需要将其保留在Apple提供的红色按钮上。为什么要改变它?它作为删除按钮的标准在全球范围内广为人知。
虽然,如果您想要像Tweetie一样完全更改滑动的行为,您可以使用类似ABTableViewCell的东西,在其中只需绘制自己的视图。创建自定义表视图,覆盖-touchesBegan:withEvent:并检查触摸。计算两个触摸之间的增量(在touchesMoved:withEvent:中),并移动您自己的视图。