0
UIImageView와 Label로 구성된 사용자 지정 컨트롤을 만들고 있습니다. 컨트롤은 확인란처럼 동작합니다.UIImageView가 특정 가장자리의 제스처에 응답하지 않습니다.
-(instancetype) initWithTitle:(NSString *)title normalCheckBoxImage:(NSString *)normalCheckBoxImage selectedCheckBoxImage:(NSString *)selectedCheckBoxImage
{
self = [super init];
self.userInteractionEnabled = YES;
self.normalCheckBoxImageName = normalCheckBoxImage;
self.selectedCheckBoxImageName = selectedCheckBoxImage;
self.title = title;
[self setupSubViews];
[self registerGestureRecognizers];
return self;
}
-(void) registerGestureRecognizers
{
UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(checkBoxTapped:)];
singleTapGestureRecognizer.delegate = self;
singleTapGestureRecognizer.numberOfTapsRequired = 1;
[self.checkBoxImageView addGestureRecognizer:singleTapGestureRecognizer];
}
-(void) checkBoxTapped:(UITapGestureRecognizer *) recognizer
{
self.isChecked = !self.isChecked;
if(self.isChecked)
{
[self.checkBoxImageView setImage:[UIImage imageNamed:self.selectedCheckBoxImageName]];
}
else
{
[self.checkBoxImageView setImage:[UIImage imageNamed:self.normalCheckBoxImageName]];
}
}
-(void) setupSubViews
{
self.checkBoxImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:self.normalCheckBoxImageName]];
self.checkBoxImageView.frame = CGRectMake(0, 0, 50, 50);
NSLog(@"width = %f; height = %f",self.checkBoxImageView.frame.size.width,self.checkBoxImageView.frame.size.height);
[self.checkBoxImageView setUserInteractionEnabled:YES];
// The init with frame should be replaced by the NSConstraints
self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.checkBoxImageView.frame.size.width + 5, 10, 100, 20)];
self.titleLabel.text = self.title;
[self addSubview:self.checkBoxImageView];
[self addSubview:self.titleLabel];
}
내가있는 UIImageView에 제스처 인식 첨부 : 여기
는 코드입니다. 하지만 그것은 UIImageView의 왼쪽 가장자리 근처에있을 때만 발생합니다. 내가 뭘 잘못하고 있는지 모르겠다. uIImageView의 중간에서 터치하면 아무 것도하지 않습니다.
색상 오버레이 레이어에는 옵션이 없습니다. Xcode 5 with iOS 7 –
시뮬레이터에서 실행 중입니다. 색상 오버레이 레이어에는 옵션이 없습니다. 물건을 추측하고 사람들이 야생 거위 쫓아 다니기 전에 확인하십시오. 업데이트 된 질문을 확인하십시오. –
잠깐만 기다려주세요. 메뉴 이름이 맞지 않을 수도 있습니다. – amar