Я предполагаю, что вам, вероятно, придется создать подкласс / манипулировать классом UIAlertView, чтобы достичь этого, что может быть рискованно, поскольку Apple может изменить свои реализации, поэтому сверните ваш код в соответствующие проверки.
Началобыло бы сделать:
NSLog(@"UIAlertView subviews: %@",alertView.subviews);
Это выведет некоторый вывод для различных элементов, составляющих UIAlertView, вы, вероятно, увидите там несколько UIB-кнопок, которыми вы можете затем манипулировать, используя что-то вроде:
UIButton* button1 = (UIButton*)[alertView.subviews objectAtIndex:N];
[button1 setFrame:CGRect(button1.frame.origin.x, button1.frame.origin.y+10, button1.frame.size.width, button1.frame.size.height)]
Разумной проверкой было бы подтверждение того, что objectAtIndex является правильным типом элемента перед выполнением операций над ним, однако это не является надежным, поскольку Apple может добавить больше UIButton или что-то в этом роде.
if ([[alertView.subviews objectAtIndex:N] isKindOfClass:[UIButton class]]) {
...
}
В зависимости от вашей ситуации вы также можете перебирать массив подпредставлений и перемещать все кнопки UIB вниз, а не просто кодировать в некоторых конкретных объектах AtIndex, но это совсем другой ответ.: -)