2011-09-13 2 views
0

일련의 단추를 만들어보기에 추가했는데, 어떻게 든이 단추에 액세스하여 모양을 바꿀 수 있기를 바랬습니다.UIbuttons 색상이 생성 된 후에 변경하십시오.

이 코드는 두 가지 버전의 코드 중 하나입니다. 올바른 단추를 찾지 못했지만 배경색에 아무런 변화가없는 것으로 확신합니다.

for(UIView *v in [self.view subviews]) { 
     if ([v isKindOfClass:[UIButton class]]) { 
      if (buttonTag == [v tag]) { 
       v.backgroundColor = [UIColor redColor]; 
      } 
     } 
    } 

for (int i = 0; i < [[self.view subviews] count]; i++) { 
     if ([[self.view.subviews objectAtIndex:i] class] == [UIButton class]) { 
      NSLog(@"Tags : %i", [[self.view.subviews objectAtIndex:i] tag]); 
      if (buttonTag == [[self.view.subviews objectAtIndex:i] tag]) { 

       [[self.view.subviews objectAtIndex:i] setBackgroundColor:[UIColor redColor]]; 
      } 
     } 
    } 

감사합니다.

+0

첫 번째 버전에서는 buttonTag 체크를 잠시 꺼내서 작동하는지 확인할 수 있습니까? – Saran

+0

시도해 보았습니다. –

+0

버튼을 프로그래밍 방식으로 만들었습니다. –

답변

0

buttonTag의 값이 정확하다면 첫 번째 코드 버전이 효과가 있다고 말할 수 있습니다.

디버깅하려면 buttonTag 비교를 주석 처리하고 버튼을 모두 빨간색으로 설정하는 것이 좋습니다.

버튼이 UIView 계층의 최상위 레벨에 있지 않을 수도 있습니다. 하위보기에 포함될 수 있습니다. 그렇다면 루프를 재귀 함수로 넣을 수 있습니다.

또는 UIButton backgroundColor가 빨간색으로 표시되어있을 수 있습니다. 둥근 모양의 단추의 내부는 흰색으로 유지됩니다. 둥근 모서리 바깥 부분 만 빨간색으로 표시됩니다. 배경 이미지가있는 단추는 빨간색으로 표시 될 수도 있습니다.

0

사용할 수 중 하나

  1. 당신은 예

    경우 (myButtton.selected = YES) 선택 속성을 설정할 수 { myButton.backgroundColor = [UIColor redColor]; } 강조 표시된 속성은 myBUtton.highlighted = YES로 사용할 수 있습니다. 다음과 같이 배경 이미지 또는 배경 색상을 설정할 수

    OR

    : [myButton에 setBackgroundImage [있는 UIImage imagedNamed : strechableImage] forState : UIControlStateTouchUpInside];

    또는 정상 상태 : [myButton setBackgroundImage : [UIImage imagedNamed : strechableImage] forState : UIControlStateNormal];

+0

버튼을 실제로 선택하지 않았 으면 다른 버튼을 클릭하면 버튼 색상이 변경됩니다. –

+0

UITouch * touch = [[이벤트 allTouches] anyObject]; if ([touch view] == theaTouchesView) –

관련 문제