как изменить ширину uitableviewcell

Я добавляю ячейку uitableview в качестве подпредставления в UIView, которая также является подвидом представления ViewController. но по какой-то причине 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];
//..

person HurkNburkS    schedule 23.08.2012    source источник


Ответы (1)


К сожалению, нет способа напрямую изменить ширину UITableViewCell: они будут занимать ширину UITableView, и по умолчанию представление таблицы займет всю ширину экрана. Единственный способ уменьшить ширину ячейки - уменьшить размер самой таблицы, изменив ширину рамки.

person Community    schedule 23.08.2012
comment
черт возьми! это так больно ... как вы думаете, яблоко будет нахмуриться, глядя на меня за то, что я сдвинул ячейку влево так, чтобы она была немного вне поля зрения, а затем просто переместите заголовок ячейки вправо. - person HurkNburkS; 23.08.2012
comment
Точно не могу сказать. Apple, как известно, строго придерживается своих правил интерфейса. Судя по тому, как это звучит, вы используете стиль сгруппированной таблицы, поскольку это единственный тип ячеек, границы которого видны (простые типы таблиц показывают только верхнюю и нижнюю границы). Я догадываюсь, что пока все границы ячеек видны, они не слишком заботятся о том, какой код вы используете, чтобы уменьшить их. - person ; 23.08.2012
comment
хорошо, как насчет этого вопроса, можете ли вы иметь заголовки разделов без ползунка раздела справа от UITableView - person HurkNburkS; 23.08.2012