Používam UITextView v bunke tableView na editovanie textu.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)];
[cell addSubview:textName];
[textName release];
}
To funguje, ale keď to bežíte na iPad, nie je to správne.
Snažil som sa určiť šírku použitia buniek cell.contentView.frame.size.width
ale to vždy vráti 320,0 pre iPhone i iPad
Aj na iPad, keď v režime na šírku by nemala byť šírka bunky väčšia?
Teo
odpovede:
2 pre odpoveď č. 1V ideálnom prípade by ste mali vytvoriť vlastný UITableViewCell
a upravte svoje veľkosti / pozície v ovládaní layoutSubviews
.
Ak sa chystáte pridať ovládací prvok tableView:cellForRowAtIndexPath:
, potom môžete získať šírku od samotnej tabuľky:
UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];
1 pre odpoveď č. 2
- Bunka iPadu sa po pridaní do tabuľky zmení na veľkosť. Ak chcete zmeniť textové pole s bunkou, môžete urobiť niečo podobné
textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
. - Mali by ste pridať vlastné pohľady na obsahView (t.
[cell.contentView addSubview:textName]
). Zobrazenie obsahu sa automaticky zmenšuje, okrem iného, pri spracovaní režimu úprav.
Podtriedenie UITableViewCell je trochu nadmerné, ak chcete len upraviť rozloženie - je to môj dojem, že automatické zmenšenie veľkosti je rýchlejšie ako manuálne dimenzovanie pomocou rozloženia rozvrhov.