NSString * tokenAsString = [[[deviceToken description] 
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] 
stringByReplacingOccurrencesOfString:@" " withString:@""];
탭뷰 형태의 툴바에 버튼을 넣고 버튼의 state에 따라 이미지를 변경하기로 했다.
그래서 처음에 이렇게 구현했다.

[button setImage:offImage forState:UIControlStateNormal];

[button setImage:onImage forState:UIControlStateSelected];

[button setImage:tapImage forState:UIControlStateHighlighted]; 

헉쓰!!  
버튼이 select 된 후 다시 press 하면 highlight 이미지가 나타나지 않고 이미지에 색이 사라져 나타난다. 
 아놔.. 색깔 나와야 되는뎅.. 나와야 한다고... 제발 ㅠ

그래서!!
구글링 한 결과 나랑 같은 문제 겪고 있는 분의 해결책을 살포시 아주 살포시 가져왔다.

단 한줄을 더 추가하면 된다.
[button setImage:tapImage forState:UIControlStateSelected | UIControlStateHighlighted];

어떤 이들은 선택할 때마다 이미지를 normal로 변경하라며 날 당황시켰는데
결국 문제를 제시한 이가 해결책도 제시했다. 
 

꺅 무튼 해결했당 - 

맵뷰의 annotationview를 뿌리는거까진 참~~ 좋았는데...

선택이 한번밖에 안된다.

한번 선택한 뷰를 연속 선택했을 때 select 어쩌구 하는 delegate 메소드를 호출하지 않는단 소리!!

어익후~ 이런 문제가 발생할 줄은 꿈에도 몰랐다 ㅠ.ㅠ

그래서 구글링 디적디적... 흘깃흘깃

헉...

annotation은 selection 접근이 가능하지만 뷰는 참조만 될뿐 set이 안된단다...

뭐 이런기 다있노 =ㅁ=

==========================================

방법 발견했따!!

역시 JJ님은 대단하셔 ㅋ

맵뷰에 보면 select 된 annotation을 deselect 할 수 있다.

[mapView deselectAnnotation:_selectedMapAnnotationView.annotation animated:NO];


허거덩 -

요로코롬 하면 되는구나 괜히 오늘 삽질했넹 ㅠ

아침에 가자마자 해야겠다

크앍!

+ Recent posts