UIAlertView кнопки рамки все 0? - PullRequest
2 голосов
/ 20 января 2011

Могу ли я получить ссылку на фреймы кнопок в созданном мною оповещении? Я хотел бы найти положение верхней кнопки, чтобы я мог использовать ее рамку, чтобы расположить изображение непосредственно над ней. У меня есть несколько лишних \ n в конце моего текста предупреждения, чтобы убедиться, что есть место для размещения изображения, но мне нужно определить, где это свободное место находится в просмотре предупреждений. Использование верхней кнопки в качестве ссылки кажется надежным способом ее найти.

Я пробовал следующее, которое возвращает массив кнопок (ThreePartButton ??), но, хотя размер каждой кнопки установлен, начало координат x, y для всех них равно 0.

NSArray *buttonArray = [alertView valueForKey:@"_buttons"];
for (UIControl *aControl in buttonArray)
{
  CGRect rect = aControl.frame;
  NSLog(@"x:%2.2f y:%2.2f w:%2.2f h:%2.2f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
}

Буду очень признателен за любые предложения по рабочему решению!

1 Ответ

5 голосов
/ 26 июля 2011

Хитрость в том, что кадры вида вычисляются непосредственно перед показом.поэтому используйте UIAlertViewDelegate (например, класс, в котором вы создаете UIAlertView) и реализуйте метод делегата

- (void)willPresentAlertView:(UIAlertView *)alertView

.Вы получите доступ к вычисленному кадру UIButton.

...