在UIAlertController的UIAlertAction中居中图像

时间:2016-01-18 05:58:00

标签: ios swift uialertcontroller uialertaction

我目前正在使用以下代码(Swift)将图像添加到UIAlertAction。      purpleAction.setValue(pCircle, forKey: "image")

如果可能,我想将图像置于UIAlertAction中心。目前,UIAlertAction的标题位于中心,图像显示在左侧。

2 个答案:

答案 0 :(得分:5)

你可以用imageWithAlignmentRectInsets实际破解这个:

UIAlertController *ac = [UIAlertController alertControllerWithTitle:nil message:alertControllerWithTitle:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
UIImage *topoImage = [UIImage imageNamed:@"foo.png"];
CGFloat alertViewPadding = 22.0;
CGFloat left = -ac.view.frame.size.width/2 + topoImage.size.width + alertViewPadding;
UIImage *centeredTopoImage = [[topoImage imageWithAlignmentRectInsets:UIEdgeInsetsMake(0,left,0,0) ]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[action setValue:centeredTopoImage forKey:@"image"];

我不确定我是否100%正确使用alertViewPadding软糖以使其完全居中,但我认为它是可行的。

enter image description here

答案 1 :(得分:-2)

您无法更改图像框架,您需要为您的问题构建自定义alertView。