0

ViewController ビューのサブビューでもある UIView のサブビューとして、uitableview セルを追加しています。しかし、何らかの理由で、 UITableViewCell を初期化してはるかに小さいものにすると、画面全体に 320 ピクセルが表示されます。

サブビューを小さくしても、幅は 320 ピクセルのままです。階層の問題かどうか疑問に思っていますか?私のコードは正しいように感じますが、何か小さなものが欠けているだけかもしれません...

//..
 // This UIView holds both custom UITableViewCell and UIButton and is placed at the top of the current UIView
    cellContainer = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 44.0)];
    cellContainer.backgroundColor = [UIColor greenColor];

    // Select all UITableViewCell
    selectAllCell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 7.0)];
    selectAllCell.textLabel.text = @"Select all"; // Set text
//    selectAllCell.accessoryType = UITableViewCellAccessoryCheckmark;
    selectAllCell.backgroundColor = [UIColor redColor]; // set bg color

    // Create non visible UIButton that sits over customTableviwecell wich allows you to set a selctor on the button press
    UIButton *selectAllButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 50.0)];
    [selectAllButton addTarget:self action:@selector(selectAll:) forControlEvents:UIControlEventTouchUpInside];

    // Add custom Cell and UIButton to cellContainer view
    [cellContainer addSubview:selectAllCell];
    [cellContainer insertSubview:selectAllButton aboveSubview:selectAllCell];
    // Ass cellContainer to self.view
    [self.view insertSubview:cellContainer atIndex:1];
//..
4

1 に答える 1

2

残念ながら、 の幅を直接変更する方法はありませんUITableViewCell。これらは の幅を占め、UITableViewデフォルトでは、テーブル ビューは画面の幅全体を占めます。セルの幅を小さくする唯一の方法は、フレームの幅を変更してテーブル ビュー自体を小さくすることです。

于 2012-08-23T04:25:15.910 に答える