2011-03-10 15 views
6

Düzenleme metninde bir tableView hücresinin içinde bir UITextView kullanıyorum.TableCell'de UITextView, Evrensel uygulama için genişlik nasıl ayarlanır

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)]; 

[cell addSubview:textName]; 
[textName release]; 

} 

Bu, ancak iPad üzerinde çalışırken doğru değil.

Ben cell.contentView.frame.size.width

kullanarak hücrenin genişliğini belirlemek için denedim ancak bu her zaman manzara iPhone ve iPad

hem iPad'de Ayrıca

zaman 320.0 döndürür mod hücre genişliği daha büyük olmamalıdır? Teo

cevap

2

İdeal özel bir UITableViewCell oluşturup layoutSubviews da kontrol boyutları/pozisyonlarını ayarlamak istiyorum.

Eğer tableView:cellForRowAtIndexPath: kontrolü eklemek için gidiyoruz, o zaman tableView kendisinden alabilirsiniz genişliği:

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)]; 
1
  1. masaya eklenmez ne zaman sonra iPad hücresi, boyutlandırılır sizin işlev döndürür. Metin alanının hücre ile yeniden boyutlandırılmasını isterseniz, textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight gibi bir şey yapabilirsiniz.
  2. ContentView'e (ör. [cell.contentView addSubview:textName]) özel görünümler eklemelisiniz. İçerik görünümü, diğer şeylerin yanı sıra düzenleme modunu yönetmek için otomatik olarak küçülür.

Alt Sınıflandırma UITableViewCell, yalnızca düzeni düzeltmek istiyorsanız biraz aşırı sıkışık oluyor - bu, otomatik yeniden boyutlandırmanın layoutSubviews kullanarak manuel boyutlandırmadan daha hızlı olduğu izlenimim.

İlgili konular