2011-01-20 91 views
2

有没有办法让我在我创建的alertView中获得对按钮框架的引用?我想找到顶部按钮的位置,以便我可以使用其框架将图像直接放置在其上方。我在alertview文本的末尾添加了一些额外的\ n,以确保有空间放置图像,但我需要确定在alertview中可用空间的位置。使用顶部按钮作为参考似乎是找到它的可靠方法。UIAlertView按钮帧全部为0?

我曾尝试以下,这确实返回按钮阵列(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); 
} 

任何建议的工作解决方案将非常感谢!

+0

在这里,你不能设置UIAlertView按钮的框架,但在这里你可以让你的自定义的alertview,并把UIButton内的AlertView。 – AppAspect 2011-07-02 08:14:31

+0

我对设置按钮框不感兴趣 - 只是在框架上获取信息。 – memmons 2011-07-26 18:08:52

回答

5

诀窍是视图的帧在显示之前计算。 所以使用UIAlertViewDelegate(其中您创建例如UIAlertView中的类)并实现

- (void)willPresentAlertView:(UIAlertView *)alertView 

委托方法。您将访问计算的UIButton的框架。