2011-05-12 3 views
0

이것은 아마도 단순한 것이지만 실제로 대답 할 수 없습니다.ios 4 setBackgroundColor가 drawRect에 의해 호출되지 않았습니다.

CS193p 클래스에 표시된 데모 응용 프로그램 중 하나를 완료했습니다. 그것은 기본적으로 슬라이더의 값에 따라 그림을 그리는 UISlider와 사용자 정의 하위 뷰를 가진 매우 간단한 뷰입니다.

사용자 정의보기에 위임자 프로토콜을 추가하기로 결정했습니다. 슬라이더로 얼굴을 행복하게 만들면보기의 배경도 만들 수 있도록 UIColor 객체를 반환하는 위임 프로토콜을 추가하기로 결정했습니다. 빨간색에서 녹색으로 바뀝니다.

잘 작동하지만 배경이 흰색으로 시작됩니다! 슬라이더를 만지 자마자 붐은 빨강 색으로 가고 잘 작동하지만 ... 하얀색으로 시작됩니다! 왜?!!

답변

0

코드를 보지 않고 배경색이 nib 파일에 설정되어 있다고 생각합니다. 인터페이스 빌더를 사용하지 않는 경우, 배경의 기본값이 흰색이지만, 확실하지 않습니다.

여러분의 nib 파일을 확인하고보기의 배경색이 무엇인지 확인합니다. 또한 viewDidLoad 메서드의 뷰에서 배경색을 원하는대로 설정할 수 있습니다.

나는 방법 기지에서 나는 경우 일부 코드를 게시 자유롭게

...

+0

안녕하세요. MobileVet, 답변 해 주셔서 감사합니다. 사실 이전에 다른 색으로 설정된 배경을 가지고 있었지만 위임을 이해하기위한 연습으로 빨강 색 효과를 구현하기로 결정했습니다. 인터페이스 빌더에서 "default"로 다시 설정하려고 시도했는데 이전에 언급 한 동작이 흰색으로 시작됩니다. 내 View의 drawRect 메서드에서 마지막 호출로 배경 빨간색을 칠하는 메서드가 있기 때문에 조금 실망 스럽습니다. 꼭 그 전화를 실행하여 RED로 페인트해야합니다! 웃는 얼굴이 슬픈 미소로 표시되기 때문에 분명히 효과가 있습니다. – holografix

+0

흠, 나는 somem 코드를 보지 않고 손실에 빠졌다고 생각합니다. 죄송합니다. – MobileVet

0

배경색은 처음에 흰색이기 때문에 backgroundcolor 즉시 색상을 변경하지 않는 변경. 다음에 슬라이더를 움직일 때와 같이보기를 다시 그릴 때 색상이 변경됩니다.