/ / UITextView w TableCell, Jak ustawić poprawną szerokość aplikacji Universal - iphone, ipad, uitableview, uitextview, universal

UITextView w TableCell, Jak ustawić poprawną szerokość aplikacji Universal - iphone, ipad, uitableview, uitextview, universal

Używam UITextView wewnątrz komórki tableView w celu edycji tekstu.

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

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

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

}

To działa, ale podczas uruchamiania go na iPadzie nie jest prawidłowe.

Próbowałem określić szerokość komórki za pomocą cell.contentView.frame.size.width

ale zawsze zwraca 320.0 zarówno dla iPhone'a, jak i iPada

Również na iPadzie w trybie poziomym nie powinna być większa szerokość komórki?

Teo

Odpowiedzi:

2 dla odpowiedzi № 1

Idealnie stworzysz zwyczaj UITableViewCell i dostosuj rozmiary / pozycje kontroli w layoutSubviews.

Jeśli chcesz dodać kontrolę tableView:cellForRowAtIndexPath:, możesz uzyskać szerokość z samego tableView:

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];

1 dla odpowiedzi nr 2
  1. Wielkość komórki na iPada jest zmieniana, gdy zostanie dodana do tabeli po zwróceniu funkcji. Jeśli chcesz zmienić rozmiar pola tekstowego z komórką, możesz zrobić coś takiego textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight.
  2. Powinieneś dodać niestandardowe widoki do contentView (tj. [cell.contentView addSubview:textName]). Widok zawartości automatycznie zmniejsza się, aby obsługiwać tryb edycji, między innymi.

Podklasowanie UITableViewCell jest nieco przesadzone, jeśli chcesz tylko poprawić układ - to moje wrażenie, że automatyczne zmienianie rozmiaru jest szybsze niż ręczne określanie rozmiarów przy użyciu layoutSubviews.