2009-04-15 4 views
0

비교적 단순한 응용 프로그램을 구현하는 방법을 설계하려고합니다.'버튼'의 시각적 눈금 디자인

전체 화면을 커버하는 '사각형'그리드를 만들고 싶습니다. 각 사각형에는 터치 이벤트에 응답 한 다음 켜기/끄기 상태가 있어야합니다. 예를 들어 '광장'을 터치 한 다음 손가락을 다른 10 개의 정사각형으로 드래그하면 모두 켜기를 원합니다. 그 반대.

150 개의 버튼으로 구성된 그리드를 만드는 것만으로는 메모리 오버 헤드가 확실하지 않습니다. 또한 버튼은 내가 볼 수있는 상태에서 설정 가능한 상태가 아닙니다. 나는 또한 UIView를 서브 클래 싱하고 UIResponder 메소드를 구현하려고 생각했다. 그것은 배열 (또는 UIViews의 하위 클래스)의 배열을 작성 해야하는 것 같은 느낌,하지만 만약 그것이 가능한지 모르겠습니다.

저는 UIResponder 메서드에서 touchevent의 위치를 ​​가져 와서 내가 어떤 사각형인지 알 수 있다고 가정합니다. UIView를 하위 클래스 화하여 myButton의 자체 버전을 만들고 UIResponder 메서드와 함께 on/off 상태 속성을 갖고 myButtons 배열을 만들어야합니까?

답변

1

UISwitch는 UISegmentedControl을 사용하여 좋은 경험이 있었지만 현재로서는이 작업을 수행하는 유일한 방법입니다.

그 밖에도 많은 응용 프로그램 개발자가하는 것처럼 일반 단추 나 이미지의 스타일/색을 변경해야하므로 모양과 색상이 원하는 모양과 반응을 보입니다.

+0

스위치의 스타일/색상을 어떻게 변경합니까? 설명서에서 UISwitch 클래스는 사용자 정의 할 수 없다고합니다. – Craig

+0

죄송합니다. –

0

UIView의 이벤트 처리 기능이 더 필요하지 않으면 단일보기를 사용하여 -touchesBegan : withEvent, -touchesMoved 및 -touchesEnded 메소드를 제공하면 최상의 성능을 얻을 수 있습니다. 그런 다음 사용자 정의 drawRect 메서드를 사용하여 개별 사각형을 켜짐 또는 꺼짐 상태로 그립니다. 또한 레이어를 사용할 수도 있지만 150 개의 뷰를 배치하려고하면 문제가 생길 수 있습니다.