Как отправить действия в подпредставление UIImage, делегированное из UIAlertView - PullRequest
1 голос
/ 29 сентября 2011

По сути, у меня всплывает UIAlertView.Когда пользователь выбирает кнопку, он вызывает себя, и на основе индекса кнопки он вызывает подпрограмму UIImageView.У меня вопрос, потому что UIImageView занимает большую часть экрана, он лежит поверх UIAlertView, поэтому кнопка отмены не видна.Мне было интересно, смогу ли я создать действия в UIImageView, чтобы, если он щелкнул или коснулся внутри, UIAlertView / UIImageView ушел бы в отставку и исчезнул?

Кто-то, пожалуйста, помогите, я работалвокруг этого в течение нескольких часов.

Вот код нажимаемой кнопки и индекс кнопки.

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex     {
// the user clicked one of the OK/Cancel buttons
if (buttonIndex == 0)
{
 //     exit(0);
}
else
{
    UIAlertView *successAlert = [[UIAlertView alloc] initWithTitle:@"molecule" message:molURL delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 280, 260)];


    NSString *MyURL = molURL;

    NSString *apURL = [NSString stringWithFormat:@"%@",MyURL];


    NSURL * imageURL = [NSURL URLWithString:apURL];
    NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage * image1 = [UIImage imageWithData:imageData];


    //UIImage *bkgImg = [[UIImage alloc] initWithContentsOfFile:path];
    [imageView setImage:image1];


    [successAlert addSubview:imageView];

    [successAlert show];
  }
}

1 Ответ

1 голос
/ 29 сентября 2011

MyImageView.h

#import <UIKit/UIKit.h>

@interface MyImageView : UIImageView {



}

@end

MyImageView.m

#import "MyImageView.h"


@implementation MyImageView


- (id)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {

        self.userInteractionEnabled=YES;

    }
    return self;
}


-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    [UIView animateWithDuration:2.0f animations:^(void) {


        self.alpha=0.0f;

        super.hidden =YES;

        UIAlertView *alert=(UIAlertView*)self.superview;


        alert.alpha=0.0f;

        [alert dismissWithClickedButtonIndex:0 animated:YES];

        //or

        //[alert removeFromSuperview];

    }];




}


- (void)dealloc {
    [super dealloc];
}


@end

MyViewController.h

    @class MyImageView;

MyViewController.m

    #import "MyImageView.h"

тогда при создании imageView

    MyImageView *specialImageView =[[MyImageView alloc]initWithFrame:CGRectMake(0, 0, 280, 260)];
...