- Я строю
UITableView
, у которого будет несколько вертикальных/горизонтальных рядов. - Первый горизонтальный ряд будет заголовком, а остальные - значениями.
- Поскольку я не знаю заранее самого большого значения (длины) одного элемента данных, я не могу предсказать максимальную ширину вертикальной строки.
- Я собираюсь предоставить минимальную ширину (равную ширине
UILabel
, которая будет служить заголовком в первой горизонтальной строке) и оценить максимально возможное значение на основе данного набора данных. Для этого я должен знать, какая из созданных волей-лейблов будет иметь самый большойIntrinsicSize
.
Проблема заключается в том, что я должен знать, что значение перед я начать строить свои клетки, а это значит, что я должен создать все этикетки, прежде чем начать строительство, так что я должен создать каждый ярлык дважды, один раз перед тем, как построить таблицу (чтобы узнать, будет ли она самой большой в вертикальной строке) и один раз для фактического размещения ее в обычном UITableViewCell
.Как узнать, какая UILabel из данного набора будет иметь наибольшую ширину, не создавая их?
- Самое главное, есть ли лучший способ сделать это?
- Если нет, как решить проблему неэффективности создания каждой метки дважды?
забыл упомянуть, что все должно быть сделано из кода, так как я использую Xamarin.iOS
и имеет практически непригодный для использования .xib
редактора.
Самая большая строка может быть не самой большой. Но я могу создать 'NSString' для каждого из них и сравнить их, правильно? Будет ли это огромной тратой, скажем, парой сотен лейблов? – nicks
@NikaGamkrelidze. Конечно, вы могли бы, но GC накладные расходы на создание сотен экземпляров «NSString» вряд ли стоили бы этого ... *** практически говоря, хватая строку с большинством символов и использую ее как ваш ' UILabel' width .... – SushiHangover
другой вариант, похоже, создает все метки и сохраняет их в словаре для дальнейшего использования. как только я создам все из них, найдите самый большой, а затем используйте эту информацию, когда выкладываете их. Я мог бы хранить эти словари в TableSource. Что Вы думаете об этом? – nicks