2012-05-25 2 views
2

누른 후 강조 계속 :사용자있는 UIButton은 내가 cocoacontrols.com에 게시 커스텀있는 UIButton을 구현 한

http://cocoacontrols.com/platforms/ios/controls/imageless-gradient-buttons

는 I've는 ARC로 프로젝트를 변환 버튼을 살고 있고. 그들은 작동하지만, 한번 누르면, 그들은 그라데이션을 강조 표시합니다.

설정하려면 스토리 보드와 IBOutlets에서 클래스를 변경하고 viewDidLoad에서 원하는 그라디언트를 선택했습니다.

무엇이 문제 일 수 있습니까?

EDIT : 나는 그걸로 더 많은 시간을 보냈으며 버튼이 UITableView에있을 때만 문제가 발생하는 것 같습니다. 그것의 UIViewController에 때 OK 작동

EDIT # 2 : 용기가있는 UIViewController을 때 버튼을 누를 때 NSLogs에있어서, 상기 구배는 다시 정상이다

2012-05-26 10:53:17.950 GradientButtons[11507:f803] highlighthed 
2012-05-26 10:53:18.040 GradientButtons[11507:f803] highlighthed 
2012-05-26 10:53:18.140 GradientButtons[11507:f803] Normal 

컨테이너가 UTableViewController이 때, 버튼은 highligthed 그라디언트로 남아 : 나는 viewContentMode 확인했습니다

2012-05-26 10:55:20.969 GradientButtons[11507:f803] highlighthed 
2012-05-26 10:55:21.069 GradientButtons[11507:f803] highlighthed 

그것은 모든 버튼에 대한 모든 동일, 인터넷에있는 UIView와 jQuery과 (스케일 ll). 다시 그리기로 변경하면 동작이 변경되지 않습니다. 당신은 중단 점을 설정하거나 NSLog의 정상적인 구배가 선택되어 있는지 여부를 확인하는 방법을 추가 할 필요가

if (self.state == UIControlStateHighlighted) 
     gradient = self.highlightGradient; 
    else 
     gradient = self.normalGradient; 

: 정상에 책임이있는 검사가있다

답변

2

은/그라데이션 도면을 강조했다. 그렇지 않은 경우 다음 단계는 일반 UIButton drawRect을 상태 로그에 추가하는 것입니다. 에


을 바탕으로 그 테이블에 대한 표준있는 UIButton 행동인지 확인하기 위해 색깔의 버튼 대신에 그것을 사용 (버튼도 강조 할 수있는 파단을 강제하는 클릭 후 예를 들어, 당신은 셀이 강조 유지할 수도있다) 당신의 로그 내가 흥미로운 재현 된 문제를 발견, 그것은 강조 상태에 대한 경쟁 조건이 touchesEnded에 잡힐 것으로 보인다. (약 1 초 동안 클릭을 시도 - 상태는 normal에서 touchesEnded). 그 이유는 다음 코드를 사용하면 해결할 수 있습니다.

-(void) setHighlighted:(BOOL)highlighted 
{ 
    NSLog(@"setHighlighted %@", highlighted ? @"Y": @"N"); 
    [super setHighlighted:highlighted]; 
    [self setNeedsDisplay]; 
} 
+0

NSLog를 추가했습니다. 분명히 버튼이 tableView에있을 때 눌렀을 때 정상으로 돌아 가지 않습니다. – Marcal

+0

감사합니다. 흥미 롭습니다. 답변 업데이트를 참조하십시오. –

+0

나는 그것을 최대한 빨리 시도 할 것이다. 그러나 무엇보다도, 나는 왜 tableviews에서만 발생 하는지를 정말로 알고 싶습니다. 이 버튼을 참조로 사용하여 맞춤 키패드를 만들었습니다. 사용자 정의 키패드가 테이블 뷰에서 호출 될 때 호기심이 생기면 매우 정상적으로 작동합니다. 전혀 문제가 없습니다 ... – Marcal

관련 문제