我正在尝试在警报视图中显示图片,并使用以下代码:
let alertView = UIAlertView(title: "Alert", message: "Alert + Image", delegate: nil, cancelButtonTitle: "OK")
let imvImage = UIImageView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
imvImage.contentMode = UIViewContentMode.ScaleAspectFit
imvImage.image = objModelClass.creatorImage
// alertView.frame = CGRect(x: 0, y: 0, width: 150, height: 150)
alertView.setValue(imvImage, forKey: "accessoryView")
alertView.show()
问题是即使图像尺寸正确,也不是像
这样的警报视图答案 0 :(得分:1)
旁注:
UIAlertView
已弃用。UIAlertController
是管理警报的当前方式。
所以这很有意思。无需在代码中指定图像大小。图像按原样表示,即图像的真实大小。
在测试时,UIAlertView
似乎会根据设备的宽度和高度与UIViewContentMode
一起计算图像显示区域的大小。这意味着在不同尺寸的设备上结果可能不同。由于UIAlertView
的宽度为540像素,因此最佳解决方案是使图像的像素为540像素×304像素(16:9)或更低。这可确保iPhone上的警报大小与iPad上的警报大小相同。宽度大于540像素的图像以意想不到的方式出现。
在尝试向UIAlertView
添加图片的过程中,所有黑客都乱窜,此方法实际上尊重UIAlertView
的标题和消息区域,并允许accessibilityLabel
和{{1}功能。它也不会禁止accessibilityHint
按钮。
以下适用于iOS 8,9,10和11 beta的设备和模拟器。 (UIAlertView
也适用于iOS 7,但未显示的图像除外。)
只需确保准确指向正确的图像名称,否则会出现空白区域。
<强>代码强>
UIAlertView
图片强>
let alertView = UIAlertView(title: "Alert title", message: "Alert message.", delegate: nil, cancelButtonTitle: "OK")
let imageView = UIImageView()
imageView.contentMode = UIViewContentMode.scaleAspectFill
imageView.image = UIImage(named: "Image")
imageView.isAccessibilityElement = true
imageView.accessibilityLabel = "Image label"
imageView.accessibilityHint = "Image hint."
alertView.setValue(imageView, forKey: "accessoryView")
alertView.show()
,540像素x 304像素图片。
答案 1 :(得分:0)
图像视图大小取决于图像的真实像素,因此降低了您正在使用的图像的分辨率