레이블의 현재 색상을 기반으로 UI 레이블의 색상을 변경하기위한 if 문을 알아내는 데 문제가 있습니다. 예를 들어, 레이블 색상이 현재 빨간색이고 올바른 버튼을 누르면 레이블 색상을 검정색으로 변경해야합니다. 라벨 색상이 검은 색이면 라벨 색상을 파란색으로 변경하고 싶습니다.iPhone dev의 현재 레이블 색상을 기반으로 한 레이블 색상 변경
0
A
답변
1
이론상으로는 if ([label.backgroundColor isEqual:[UIColor blackColor]) { ... }
과 같은 조건부를 사용할 수 있지만 동일하게 보이는 두 가지 색상이 반드시 isEqual:
을 전달하지 않을 수 있으므로주의해야합니다. (예를 들어, 하나가 그레이 스케일이고 다른 하나가 24 비트 RGB 인 경우).
보기의 시각적 특성을 기반으로 조건부 논리를 실행하면 어쨌든 다시 고려해야 할 디자인 결정처럼 보입니다. 응용 프로그램의 논리에 버그를 추가하지 않고도 미래에 시각적 디자인을 변경 (예 : 다른 색상 사용)하기가 더 어려워지고 있습니다. Model View Controller 패턴은 모델 상태, 모델을 수정하는 논리 및 시각적으로 표현하는 뷰를 분리하도록 권장합니다. 레이블이 세 가지 색상 사이를 순환하면 색상은 가능한 세 가지 값 사이를 순환하는 기본 논리 상태를 나타냅니다. 더 나은 선택은 기본 모델 내에서 해당 상태를 순환시키고 라벨의 색상이 그 상태를 반영하게하는 것입니다.
// .h
typedef enum WeaponState {
WeaponStateRock,
WeaponStateScissors,
WeaponStatePaper
} WeaponState;
// .m
- (IBAction)weaponSelectorButtonClicked {
if (weaponState == WeaponStateRock) {
weaponState = WeaponStateScissors;
}
else if (weaponState == WeaponStateScissors) {
weaponState = WeaponStatePaper;
}
else {
weaponState = WeaponStateRock;
}
[self refreshView];
}
- (void)refreshView {
if (weaponState == WeaponStateRock) {
self.label.backgroundColor = [UIColor redColor];
}
else if (weaponState == WeaponStateScissors) {
self.label.backgroundColor = [UIColor blackColor];
}
else {
self.label.backgroundColor = [UIColor blueColor];
}
}
: 예를 들어
,의는 라벨의 색상이 가위, 바위, 보 게임에서 무기 선택을 나타냅니다 가정 해 봅시다
관련 문제
- 1. Flex 4 FormItem의 레이블 색상 변경
- 2. 현재 위치 레이블 텍스트 변경
- 3. AdvancedDataGrid의 그룹 레이블 변경
- 4. gtk.noteBook의 탭 레이블 변경
- 5. UISwitch 레이블 변경
- 6. Xcode의 레이블 값 변경
- 7. uitableview에서 레이블 변경
- 8. 레이블 변경 (jQuery를)
- 9. 변경 레이블 텍스트는 한동안
- 10. 변경 레이블 속성 프로그램
- 11. Qt에서 레이블 이미지 변경
- 12. 레이블 크기 변경
- 13. iPhone 바꾸기 레이블
- 14. iPhone 릴리스 레이블 텍스트
- 15. 레이블
- 16. TFS : 레이블 대 변경 집합
- 17. Response.End() 뒤에 레이블 텍스트 변경
- 18. C# 코드의 ASP.Net 레이블 변경
- 19. C# .net 레이블 텍스트 변경
- 20. Project Cruisecontrol.net의 빌드 레이블 변경
- 21. 레이블 방향을 프로그래밍 방식으로 변경
- 22. 레이블 변경 일반 인라인 관리
- 23. 작동하지 않는 배열을 통해 레이블 색상을 변경하려고합니까?
- 24. SegmentControl 버튼 레이블 글꼴 크기 변경
- 25. iPhone SDK : Interface Builder 레이블 글꼴, 레이블 편집시에만 표시
- 26. gridview의 선택한 행을 기반으로 두 개의 레이블 텍스트 변경
- 27. WPF 바인딩 질문 - 한정자 키 컨트롤을 기반으로 레이블 텍스트 변경
- 28. iPhone 화면의 색상 변경
- 29. iPhone UITableViewController 및 레이블 관련
- 30. 바인딩을 통한 사용자 지정 진행률 레이블 레이블