【发布时间】:2011-07-28 15:21:14
【问题描述】:
有没有办法改变UITableViewCells 上使用的“滑动”[DELETE] 按钮的框架?目前它在单元格内垂直居中,但如果可能的话,我想将其移至青色指南显示。
【问题讨论】:
标签: iphone objective-c cocoa-touch uitableview
有没有办法改变UITableViewCells 上使用的“滑动”[DELETE] 按钮的框架?目前它在单元格内垂直居中,但如果可能的话,我想将其移至青色指南显示。
【问题讨论】:
标签: iphone objective-c cocoa-touch uitableview
如果您正在寻找一种非常正确的方法来解决此问题,那么您应该继承UITableViewCell 并覆盖所有状态处理方法以正确绘制您自己的删除按钮(不要在这些方法中调用 super)。但是还有另一种简单的方法:
@implementation CustomCell
- (void)layoutSubviews {
[super layoutSubviews];
if (self.showingDeleteConfirmation) {
if ([self.subviews count] < 4) return;
UIView *delBtn = [self.subviews objectAtIndex:3];
delBtn.frame = CGRectOffset(delBtn.frame, 0, 10);
}
}
@end
【讨论】:
[self.subviews objectAtIndex:3] 迟早会崩溃。覆盖状态处理和绘制自定义删除按钮是更好的主意。
而不是didTransitionToState:,
使用-(void)willTransitionToState:并设置editingAccessoryView的框架怎么样?
- (void)willTransitionToState:(UITableViewCellStateMask)state
{
if (state == UITableViewCellEditingStyleDelete)
{
NSInteger num = 10;
UIView.frame = CGRectMake(UIView.frame.origin.x,UIView.frame.origin.y - num,
UIView.size.width,UIView.size.height);
}
}
【讨论】:
尝试更改附件视图的框架
【讨论】: