在表视图中自定义单元格上删除样式

时间:2013-01-17 09:27:03

标签: iphone ios uitableview

我已经以这种方式实现了自定义单元格:

@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中使用它。问题是当我交换单元格删除时,左侧只出现红色减号,但单元格没有向右移动。它看起来如下图所示:

enter image description here

如何解决此问题以将我的自定义单元格移至右侧?

2 个答案:

答案 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: -

enter image description here

编辑时: -

enter image description here

答案 1 :(得分:1)

autoresizingMask属性设置为UITableViewCell Label。像

_nameLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;