2012-05-25 2 views
0

scrollView에서 가로 탐색 메뉴를 만들려고합니다. 메뉴의 모든 항목에 대해 나는 다른 이미지를 가졌습니다. 내가 항목을 선택하면,이 항목의 배경 이미지를 변경하려면,하지만 난 내 코드가 작동하지 않는 이유를 알고하지 않습니다이 코드에 나쁜 일이ios 가로 스크롤 메뉴 - 배경 버튼 선택

for (int i=0; i<12; i++) { 
      UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
      UIImage *normal=[UIImage imageNamed:@"icon1"]; 
      UIImage *selec=[UIImage imageNamed:@"icon1down"]; 
      [btn setFrame:CGRectMake(i*larg, 0, 42.0, 43.0)]; 
      [btn setBackgroundImage:normal forState:UIControlStateNormal]; 
      [btn setBackgroundImage:selec forState:UIControlStateSelected]; 

      [scrollCat addSubview:btn]; 
      cx+=42.0; 
    } 
    [scrollCat setContentSize:CGSizeMake(cx, 43)]; 

있습니까?

답변

0

UIControlStateSelected 대신 UIControlStateHighlighted을 시도하십시오. 강조 표시는 사용자가 단추를 건드린 상태입니다. 선택 항목은 세그먼트와 같은 일부 컨트롤에만 사용됩니다. 사용자 정의 버튼 (선택된 버튼)은 선택 항목을 사용하거나 사용할 수 있습니다.

the UIControl_Class docs at developer.apple.com (강조 내)에서 :

제어의 중요 상태를 UIControlStateHighlighted. 컨트롤은 터치가 트래킹 중에 들어갔다 나오거나 터치 업 이벤트가있을 때이 상태로 들어갑니다. ...

는 컨트롤의

선택된 상태를 UIControlStateSelected. 많은 컨트롤에서이 상태는 동작 또는 모양에 효과가 없습니다.. 그러나 다른 하위 클래스 (예 : UISegmentedControl 클래스)는 에 따라 모양이 다를 수 있습니다. ...

+0

답장을 보내 주셔서 감사합니다. 다른 아이템을 클릭하기 전까지 버튼이 두 번째 배경 이미지와 함께 머물러있게하려면 어떨까요? – Astram56

+0

선택 및 강조 표시를 모두 수행 할 수 있습니다. http://stackoverflow.com/questions/1785008/keeping-a-uibutton-selected-after-a-touch를 참조하십시오. – ckhan