UIImageView идеальное пиксельное `прикосновение началось` для непрозрачных частей UIImage - PullRequest
2 голосов
/ 14 января 2012

разрабатывая приложение для iphone, я использовал UIImageview, и я установил изображение неправильной формы

// uiimageview type shutter
shutter = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,32.5)];

//setting image on shutter
UIImage* shutterimg = [UIImage imageNamed:@"trayshutter.png"];
[shutter setImage:shutterimg];
// User interaction
shutter.userInteractionEnabled=YES;

, и я получаю прикосновения, используя touchesbegan

все в порядке, но проблема в том, что ятакже получить события во всей области прямоугольника, занятой CGRectMake (т. е. 0,0,32,32,5) изображения, тогда как мне требуются события только на изображении (которое имеет форму ----- ||||| ----).

Как я могу убедиться, что я получаю события только на изображении, а не на остальной части, покрытой cgrectmake?

1 Ответ

0 голосов
/ 14 января 2012
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [touches anyObject];
  if ([touch view] == yourDesiredImage) {
    // Do something here
  }
}

РЕДАКТИРОВАТЬ: может быть, вы можете попробовать UITapGestureRecognizer вместо:

UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] init];
[tapGestureRecognizer addTarget:self action:@selector(yourTouchMethod:)];
[tapGestureRecognizer setNumberOfTapsRequired:1];
[shutter addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...