как сделать так, чтобы макеты представлений iphone автоматически менялись и располагались - PullRequest
0 голосов
/ 03 апреля 2012

В моем приложении для iPhone у меня есть два UITextView внутри ячейки с фреймами (65,22,210,25) (65,40,210,25). Я заполняю эти текстовые представления строками, длина которых я не знаю (извлекаю их из базы данных)Мой вопрос о буксирных частях:

1 - если первое текстовое представление превышает определенную высоту в его кадре, оно переместится через второе текстовое представление

2 - когда эти текстовые представления увеличиваются в высоте Как я могууказать высоту ячейки держать их?я могу сделать размер ячейки автоматически ??

мое текущее решение для первого вопроса состоит в том, чтобы переставить рамку представлений в layoutSubviews, и для второго вопроса я пытаюсь вычислить новые высоты текстовых представлений и передать его делегату

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

есть ли лучшие решения?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

вам нужно идти таким образом, когда вы

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

проходите высоту, которая может удерживать textView соответствующей высоты.Затем в

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

отрегулируйте высоту textView соответственно, и в обоих вышеописанных методах используйте sizeWithFont:constrainedToSize:lineBreakMode: для определения требуемой высоты

0 голосов
/ 03 апреля 2012

Ваш подход правильный. Вы можете использовать sizeWithFont:constrainedToSize:lineBreakMode: для определения размера текста, а затем рассчитать высоту ячейки в tableview:heightForRowAtIndexPath (просто не забудьте включить значения Y для фрейма)

Здесь можно увидеть еще немного кода: UILabel с - [sizeWithFont: constrainedToSize: lineBreakMode] обрезает слова

...