I want UIAlertController
to present an alert with UIImageView
in an ActionSheet
. But when I run the application it is terminating.
This is my code:
UIAlertController *alert = [UIAlertController
alertControllerWithTitle:@"Title"
message:@"Welcome"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okButton = [UIAlertAction
actionWithTitle:OK
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
}];
[alert addAction:okButton];
UIImageView *imgv = [[UIImageView alloc]initWithFrame:CGRectMake(20,20,50,50)];
imgv.image = [UIImage imageNamed:@"kaga.jpg"];
[alert setValue:imgv forKey:@"image"];
[self presentViewController:alert animated:YES completion:nil];
change this:
to this:
It is not possible to add an image to a
UIAlertController
according to Apple Doc.if you want then you can create your own custom view like:
https://github.com/wimagguc/ios-custom-alertview
If you want to take image appear on
button
then Try like this:You could add an image above the title label by subclassing
UIAlertController
and adding\n
to the title string to make space for theUIImageView
. You'd have to compute the layout based on the font size. For images in theUIAlertAction
useKVC
like so:self.setValue(image, forKey: "image")
. I would recommend to use an extension that checks forresponds(to:)
.Here is sample implementation.