UIAlertView 按钮框架都是0?
Posted
技术标签:
【中文标题】UIAlertView 按钮框架都是0?【英文标题】:UIAlertView button frames are all 0? 【发布时间】:2011-01-20 16:51:06 【问题描述】:有没有办法让我在我创建的 alertView 中获得对按钮框架的引用?我想找到顶部按钮的位置,这样我就可以使用它的框架将图像直接放在它上面。我的 alertview 文本末尾有几个额外的 \n,以确保有空间放置图像,但我需要确定可用空间在 alertview 中的位置。使用顶部按钮作为参考似乎是找到它的可靠方法。
我尝试了以下方法,它确实返回了按钮数组 (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);
任何关于可行解决方案的建议将不胜感激!
【问题讨论】:
这里你不能设置 UIAlertView 按钮的框架,但是你可以在这里制作你的自定义 alertview 并将 UIButton 放在那个 AlertView 中。 我对设置按钮框架不感兴趣——只是获取框架上的信息。 【参考方案1】:诀窍是视图的帧是在显示之前计算的。 所以使用 UIAlertViewDelegate (例如,您创建 UIAlertView 的类)并实现
- (void)willPresentAlertView:(UIAlertView *)alertView
委托方法。您将访问计算出的 UIButton 的框架。
【讨论】:
这个答案令人满意吗?还是您需要更多信息?以上是关于UIAlertView 按钮框架都是0?的主要内容,如果未能解决你的问题,请参考以下文章
从登录 UIAlertView 取消时,应用内购买不发送 SKPaymentCancelled
Xcode 4.2、UIAlertView 和 UIAlertButton?