В простое приложение для iPhone Я показываю плитку писем (пользовательский UIView
с изображением и 2 метками) следующим кодом в viewDidLoad:
DraggedTile *tile = [[[NSBundle mainBundle] loadNibNamed:@"DraggedTile"
owner:self
options:nil] firstObject];
tile.frame = CGRectMake(10 + arc4random_uniform(100),
10 + arc4random_uniform(100),
kWidth,
kHeight);
[self.view addSubview:tile];
Это работает нормально, но я хотел бы, чтобы плитка письма увеличивалась - когда я поставляю большие параметры ширины и высоты в CGRectMake
.
Итак, в Xcode 5.1 Interface Builder я открываю DraggedTile.xib
и включаю "Автоматический макет".
Затем для image
и letter
я добавляю ограничения в левый, верхний, правый, нижние ребра родителя.
Для метки letter
я также установил "Линии" на 0 и "Приоритет устойчивости сжатия содержимого" до 1000 (здесь fullscreen 1 и fullscreen 2):
Затем я изменяю код, чтобы использовать большую ширину и высоту:
tile.frame = CGRectMake(10 + arc4random_uniform(100),
10 + arc4random_uniform(100),
2 * kWidth,
2 * kHeight);
Вот результат:
Как фоновая метка image
, так и метка letter
, похоже, выросли по назначению.
Однако размер шрифта метки не вырос.
Я искал вокруг, и я думаю, что мне нужно что-то вроде tile.letter.adjustsFontSizeToFitWidth = YES
. Но в то же время я не могу использовать его при включенной автоматической компоновке...
Итак, мой вопрос, если в "Interface Builder" есть какая-либо опция, позволяющая увеличить размер шрифта?
UPDATE:
Я попытался предложить ismailgulek установить размер шрифта до 200 в Interface Builder и в коде tile.letter.adjustsFontSizeToFitWidth = YES
и выглядит многообещающим (здесь полноэкранного):
но у меня теперь есть проблема, что я установил 40px в качестве ограничения letter.bottom
в Interface Builder. Но что, если мне нужна большая рамка для плитки? Есть ли способ использовать процент, а не абсолютное значение пикселя в этом ограничении?
И еще один вопрос, если можно установить adjustsFontSizeToFitWidth
где-нибудь в построителе интерфейса или мне нужно использовать исходный код для этого? Я попытался добавить ключ к "Атрибутам пользовательской настройки времени выполнения" - но затем приложение вылетает во время выполнения: