Ответ
@ user651909 отлично подходит для меня, хотя я бы добавил еще несколько деталей:
Я должен был initWithTitle:@" "
(обратите внимание на непустую строку) при создании UIActionSheet
, чтобы в представлении было свободное место сверху для любого текста, с которого можно начать. Затем, после выполнения [popupQuery showInView:self.view];
, я добавил его предложение, чтобы oldFrame был инициализирован. Наконец я добавил:
[newTitle sizeToFit];
newTitle.frame = CGRectMake(oldFrame.origin.x,
oldFrame.origin.y,
oldFrame.size.width,
newTitle.frame.size.height);
Это было необходимо, поскольку высота oldFrame
была слишком мала для моего более крупного шрифта (размер 20), из-за чего некоторые буквы обрезались снизу. Также даже с этой настройкой, если вы сделаете текст слишком большим, скажем, больше, чем boldSystemFontOfSize: 26, текст будет проходить слишком близко или к кнопкам ниже. Изменение размера рамки листа не помогает, поскольку кнопки, кажется, закреплены наверху.
Предположительно делает
CGRect oldFrame = [(UILabel*)[[sheet subviews] objectAtIndex:0] frame];
не нарушает политику Apple не использовать какой-либо внутренний API, верно?