2010-07-27 8 views
1

저는 최근 C에서 알고리즘 스도쿠 솔버를 완성했습니다.이 솔버는 퍼즐을 풀기 위해 세 가지 다른 접근법이 취해졌습니다. 프로젝트 오일러 솔루션을 위해 작성한 코드 조각이었습니다. 약간의 재미, 내가 추가 할 수도 ...스도쿠 그리드 용 UIKit 컨트롤?

Anywho, 그래서 정말이 작은 해결사 아이폰 애플 리케이션에 관심이 있어요. 나는 그리드를 화면에 표시하는 데 어떤 접근 방식을 취하고 있는지를 놓치고있다. 내가 상상할 수있는 최악의 방법은 81 개의 개별 UITextField에 대해 81 개의 개별 콘센트가있는 것입니다 ... 코코아 응용 프로그램에서 NSMatrix에 포함시키고 진행하지만 iPhone에는 NSMatrix를 대체 할 수 없습니다.

저는 HTML 파일을 생성하여 UIWebView에 표시하는 것에 대해 생각하고 있습니다. 그러나 이것에 대해서도 가장 좋은 방법은 아닙니다. 무엇을 추천하나요?

답변

1

나는 아주 간단한 것으로 시작할 것입니다 : 81 요소 배열을 가지고 있으며 drawRect : draw를 그리거나 layoutSubviews에 하위 뷰 또는 하위 레이어를 추가하여 이것을 9x9 그리드로 렌더링하는 방법을 알고있는 UIView 하위 클래스입니다. 배열 인덱스와 그리드 rect 사이를 매핑하는 것이 매우 쉽습니다. 이 뷰는 원하는 배경 격자/선을 그릴 수 있습니다.

+0

이것은 훌륭한 아이디어처럼 들립니다. 나는 또한 이전에 이런 방식으로 UIView를 하위 클래스로 분류하지 않았으며 훌륭한 학습 경험이 될 것입니다. 이 문제를 해결하는 방법에 대한 좋은 가이드가 있습니까? 내 두 개의 아이폰 책은 아무것도 하위 클래스에 아무것도 ... –

+0

정말 UIView 하위 클래스를 만드는 것만 큼 간단합니다 (Xcode는 새 파일을 추가 할 때이 템플릿을 사용합니다). 그런 다음 일부 드로잉 코드를 -drawRect : 메서드에 넣습니다. . 드로잉의 경우 그리드를 생성하기 위해 UIBezierPath를 살펴볼 수 있으며 NSString은 텍스트를 그리는 데 편리한 메소드를 가지고 있습니다. 또는 CoreGraphics/Quartz로 이동하여 몇 가지 추가 드로잉 API를 얻을 수 있습니다. Quartz 2d 프로그래밍 가이드는 여러분이 그 길로 가면 시작할 수있는 좋은 곳입니다. –

+0

감사! 이제 그리드 그리드를 얻었으며 텍스트 그리기 작업을 시작했습니다 ... UILabel을 하위 뷰로 배치하거나 CoreGraphics로 텍스트를 그리는 것이 좋습니다. 두 경우 모두 텍스트를 세로 및 가로로 상자 중앙에 배치하고 싶습니다. 얼마나 많은 문자의 폭과 높이가 걸릴지 알 수 있습니까? –

0

독자적인 UIView를 작성하고 직접 그림을 그려보십시오.