인 경우 iphone UIButton 선택기가 작동하지 않습니다. 여러 가지 방법을 시도했지만 코드에 문제가 있는지 찾을 수 없으므로 도와주세요!프레임 원점이 0
지도에서 핀을 클릭 할 때 맞춤 설명 선 풍선을 표시하고 풍선 내부에 일부 이미지를 표시하며 사용자가 자세한 정보를 클릭하고 액세스 할 수 있도록 세부 표시 단추를 원합니다. 내 문제는 거품과 버튼이 표시되지만 버튼을 클릭하면 선택기 메서드가 호출되지 않는다는 것입니다. 처음에는
- (id) initWithAnnotation:(id)annotation reuseIdentifier:(NSString *)reuseIdentifier
:
// 편집 : 나는 너무 많은 코드를 넣어 처음으로, 나는, 답
방법에주셔서 감사합니다 더 구체적으로 노력하고 편집 할 것이기 때문에 죄송합니다 내가 하위 뷰로 추가하고, 거품 콜 아웃을 사용자 정의 할 수있는 동시에 나는 약간의 라벨과 이미지와 I을 만들 정상 핀
self = [super initWithAnnotation:myAnnotation reuseIdentifier:reuseIdentifier];
self.frame = CGRectMake(0, 0, kWidth, kHeight);
self.backgroundColor = [UIColor clearColor];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]];
imageView.frame = CGRectMake(kBorder, kBorder, kWidth - 2 * kBorder, kWidth - 2 * kBorder);
[self addSubview:imageView];
대신 사용자 정의 아이콘을 변경하려면 이미지 뷰를 표시 내가하지 않기 때문에이 나는 둥근 RECT 배경 및 텍스트에 크기를 만들 그 후
calloutView = [[UIView alloc] initWithFrame:CGRectMake(10, 30, restNameLbl.frame.size.width + 30, 60)];
calloutView.hidden = YES;
호출되는 핀의 선택 방법까지 처음에 숨겨져있는보기 calloutView에 dded, 나는 코드의 일부 생략
[calloutView addSubview:backgroundRect];
[calloutView addSubview:restNameLbl];
[calloutView addSubview:likeImg];
[calloutView addSubview:likesLbl];
[calloutView addSubview:noLikeImg];
[calloutView addSubview:noLikesLbl];
: 그것은 지금 중요하다고 생각합니다, 제가 넣어해야한다면, 나는 기본 아이폰 거품 맵 유구에게
을 시뮬레이션하기 위해 일부 그래픽 기능을 사용하고 난이 calloutView에 이전에 생성 된 모든 요소를 추가 알려 그런 다음 그 위치를 올바른 위치에 놓습니다. 나는 사용자가 더 많은 정보에 액세스 할 수 있도록 상세 공개 버튼을 보여주고 싶은,하지만 난 calloutView에 직접 추가 한 경우 선택기 이벤트가 트리거되지 않습니다 calloutView라고 -
//position callout above pin
calloutView.frame = CGRectMake(-25, -calloutView.frame.size.height-10, calloutView.frame.size.width + 50, calloutView.frame.size.height);
[self addSubview:calloutView];
그리고 같은 거품보기
. 그래서 나는 그것이 부모 뷰에 버튼을 추가하는 사용자들은 다른 방식으로 그것을 시도, 예에 숨겨진 상태를 넣고 선택 방법accessory = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[accessory setTitle:myAnnotation.idRest forState:UIControlStateNormal];
accessory.hidden= YES;
// 주에 보여 : 여기가 문제가되는 경우가 있어요 이 프레임 라인을 생략하면 모든 것이 완벽하게 작동합니다. origin.x와 origin.y를 0,0으로 설정하면 버튼 셀렉터가 작동하지 않는보기의 올바른 위치에 해당 숫자가 표시되도록 변경했을 때
accessory.frame = CGRectMake(110, calloutView.frame.origin.y+25, accessory.frame.size.width, accessory.frame.size.height);
그런 다음 선택기 이벤트를 클릭 할 때 추가하고 calloutAccessoryTap 함수를 호출하면 호출됩니다. 액세서리의 프레임이 표시되지 나 origin.x와 y가 모두 0
accessory.userInteractionEnabled = YES;
[accessory addTarget:self action:@selector(calloutAccessoryTap) forControlEvents: UIControlEventTouchUpInside | UIControlEventTouchCancel];
로 설정 그리고 마지막 경우 내가 기본보기에있는 버튼을 추가
[self addSubview:accessory];
그래서 처음에보기는 단지입니다 아이콘이 있으면 레이블 및 이미지가있는 설명 선보기가 숨겨지고 세부 단추에도 동일한 작업이 수행되며 핀이 선택되고 거품이 표시되어야 할 때 설명 선보기와 단추가 표시됩니다.모든 것이 화면에서 바로 볼 수 있지만 액세서리의 프레임이 원점 x 및 y 0,0과 구분되는 올바른 위치로 설정되면 셀렉터가 작동을 멈 춥니 다.
많은 다른 것들을 시도했지만 아무도 노력하지 않았기 때문에 당신이 나를 도울 수 있기를 바랍니다.
당신은 코드를 다듬을 수 있습니다. 너무 많이 ... 문제를 설명하고 문제를 일으키는 코드는 무엇입니까? 해결책을 찾기 위해이 코드를 모두 통과하기가 너무 어렵습니다. – lukya