Показать UIButton при касании изображения? - PullRequest
0 голосов
/ 22 сентября 2010

есть ли способ скрыть UIButton, пока не будет нажата UIImageView ??Когда картинка нажата, мне нужно показать кнопку «Назад», как это работает в приложении Photo на iPhone ???Вот код моего UIButton:

- (void)viewDidLoad {
    [super viewDidLoad];

    [self ladeImage];
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(10, 10, 40, 40);
    [btn addTarget:self action:@selector(goToViewA) forControlEvents:UIControlEventTouchUpInside];
    [btn setTitle:@"<<" forState:UIControlStateNormal];
    [self.view addSubview:btn];

    }

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Первый шаг: btn.hidden = YES

Затем вы должны создать подкласс UIImageView, чтобы отреагировать на его событие touchesEnded: и изменить там скрытое свойство вашей кнопки. Для этого правильным способом является создание протокола (с помощью метода viewTouched). Реализуйте этот протокол в viewController, содержащем вашу кнопку и ваш ImageView. Добавьте свойство делегата к подклассу ImageView (т.е. id<MyCustomProtocol> _delagate;) и назначьте контроллер представления этому свойству.

0 голосов
/ 15 декабря 2011
btn.hidden = YES;

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image name"]];
imageView.userInteractionEnabled = YES; // here to enable touch event
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGestureRecongizer:)]; // handleTapGestureRecongizer is method will call when tap even fire
[imageView addGestureRecognizer:tap]; // Add Tap gesture recognizer to image view
[tap release], tap = nil;
[self.view addSubview:imageView];
[imageView release], imageView = nil;

Метод handlerTapGestureRecognizer:

- (void)handleTapGestureRecongizer:(UITapGestureRecognizer *)gestureRecognizer{
if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
    btn.hidden = NO;
}

}

веселиться!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...