将 UIImage 添加到 UIAlertView 未按预期工作

Adding UIImage to UIAlertView is not working as expected

我正在开发一个应用程序。我尝试使用以下代码将 UIIMage 添加到 UIAlertView,

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Instruction"
                                                    message:@"Please TAP on Screen to Continue."
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 50, 32, 32)];
UIImage *img = [UIImage imageNamed:@"pendingImg.png"];
[imageView setImage:img];
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
    [alert setValue:imageView forKey:@"accessoryView"];
}else{
    [alert addSubview:imageView];
}
[alert show];

我的图像尺寸为 32 × 32 像素。我收到如图所示的警报,

我应该给这张图片添加约束吗?或者还有什么要做的吗?

试试这个

 UIAlertView* alert = [UIAlertView alloc] initWithTitle: @"Instruction" message: @"Please TAP on Screen to Continue." delegate:nil cancelButtonTitle:@"no" otherButtonTitles:@"yes", nil];

    UIImage* img = [UIImage imageNamed:@"pendingImg.png"];
    UIImageView* imgview = [UIImageView alloc] initWithFrame:CGRectMake(0, 0, img.size.width, img.size.height)];
    [img setImage:imgMyImage];

    [alert setValue: imgview forKey:@"accessoryView"];
    [alert show];

您可以将 imageView contentMode 设置为 UIViewContentModeScaleAspectFit,

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Instruction"
                                                    message:@"Please TAP on Screen to Continue."
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 50, 32, 32)];
UIImage *img = [UIImage imageNamed:@"pendingImg.png"];
 imageView.contentMode = UIViewContentModeScaleAspectFit;

[imageView setImage:img];
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
    [alert setValue:imageView forKey:@"accessoryView"];
}else{
    [alert addSubview:imageView];
}
[alert show];

可能 Anbu.Karthik 建议 link 评论对您也有帮助。

UIAlertView* alert = [[UIAlertView alloc] initWithTitle: @"Instruction" message: @"Please TAP on Screen to Continue." delegate:nil cancelButtonTitle:@"no" otherButtonTitles:@"yes", nil];

   UIImage* img = [UIImage imageNamed:@"add.png"];
    UIImageView* imgview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, img.size.width, img.size.height)];
    [imgview setImage:img];
    [alert setValue: imgview forKey:@"accessoryView"];
    [alert show];
}