0

この方法でカスタムセルを実装しました:

@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で使用します。問題は、セルをスワップして削除すると、左側に赤いマイナスだけが表示されますが、セルは右にシフトしません。以下の画像のようになります。

ここに画像の説明を入力

この問題を修正して、カスタム セルを右に移動するにはどうすればよいですか?

4

2 に答える 2

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];して正常に動作しています:-

私のUITableINew:-

ここに画像の説明を入力

編集中:-

ここに画像の説明を入力

于 2013-01-17T09:34:59.437 に答える
1

autoresizingMaskプロパティを に設定しますUITableViewCell Label。お気に入り

_nameLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
于 2013-01-17T09:44:53.463 に答える