我已经以这种方式实现了自定义单元格:
@implementation StandardCellWithImage: UITableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Base-List"]];
_checkbox = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 24, 24)];
_checkbox.userInteractionEnabled = YES;
[self addSubview:_checkbox];
/*textField with image/file name*/
_nameLabel = [[UITextField alloc] initWithFrame:CGRectMake(50, 10, 180, 44)];
[_nameLabel setBackgroundColor:[UIColor clearColor]];
[_nameLabel setFont:[UIFont fontWithName:@"HelveticaNeueCE-Bold" size:18.0f]];
[_nameLabel setUserInteractionEnabled:NO];
_nameLabel.keyboardType = UIKeyboardTypeAlphabet;
_nameLabel.returnKeyType = UIReturnKeyDone;
[self addSubview:_nameLabel];
}
return self;
}
我在tableView中使用它。问题是当我交换单元格删除时,左侧只出现红色减号,但单元格没有向右移动。它看起来如下图所示:
如何解决此问题以将我的自定义单元格移至右侧?
答案 0 :(得分:2)
您需要对代码进行少许更改
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Base-List"]];
_checkbox = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 24, 24)];
_checkbox.userInteractionEnabled = YES;
[self.contentView addSubview:_checkbox]];//also change here
// [self addSubview:_checkbox];
/*textField with image/file name*/
_nameLabel = [[UITextField alloc] initWithFrame:CGRectMake(50, 10, 180, 44)];
[_nameLabel setBackgroundColor:[UIColor clearColor]];
[_nameLabel setFont:[UIFont fontWithName:@"HelveticaNeueCE-Bold" size:18.0f]];
[_nameLabel setUserInteractionEnabled:NO];
_nameLabel.keyboardType = UIKeyboardTypeAlphabet;
_nameLabel.returnKeyType = UIReturnKeyDone;
// [self addSubview:_nameLabel];
// i just did change at one line now test your code
[self.contentView addSubview:_nameLabel];
}
return self;
}
我使用[self.contentView addSubview:_nameLabel];
并且正常工作: -
我的UITableVIew: -
编辑时: -
答案 1 :(得分:1)
将autoresizingMask
属性设置为UITableViewCell Label
。像
_nameLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;