Нарисуйте сетку или используйте изображение на iPhone - PullRequest
0 голосов
/ 27 мая 2011

Я хочу создать простую сетку судоку. Что-то вроде этого: http://i1 -mac.softpedia-static.com / скриншоты / 31-3-33_1.png

Это хорошая идея, чтобы создать изображение сетки и использовать в качестве фонового изображения, а затем выложить мои цифры на этом, или я должен нарисовать сетку, используя OpenGL или что-то?

Если вы используете изображение, какой размер подходит?

Если OpenGL, как это сделать?

С наилучшими пожеланиями Линус

Ответы [ 3 ]

1 голос
/ 27 мая 2011

Я бы добавил другое возможное решение: использовать CoreAnimation.В случае с сеткой судоку вы можете просто использовать один CATextLayer для каждого числа.Затем вы можете использовать свойство слоя borderWidth, чтобы получить границу слоя для сетки.

Другое возможное решение - создать корневой слой, который рисует сетку, либо установив для изображения значение * 1005.* свойство слоя или рисование сетки самостоятельно с использованием CoreGraphics в методе drawInContext:(CGContextRef)ctx.Затем добавьте свои номера как CATextLayers.Круто то, что теперь вы можете легко увеличивать или уменьшать числа.Вы также можете изменить фон каждого отдельного поля, установив свойство backgroundColor CATextLayer.

Как всегда: TIMTOWTDI.

1 голос
/ 27 мая 2011

Будьте проще.Нет необходимости в OpenGL.Фоновое изображение будет отлично работать для сетки судуку, если вы не хотите сумасшедшие анимации.

Вы также не указали CoreGraphics как опцию ... которая бы подходила где-то между фоновым изображением и opengl с точки зрения гибкости и простоты использования ... тем не менее ... фоновое изображение так легконе знаю, почему бы вам не использовать это.

Для размеров имейте в виду, что вам нужно поддерживать iPad (1024 x 768), iPhone 4 Retina Display (640 x 960) и iPhone (320 x 480) ... также, если вы показываете строку состояния или другие элементы пользовательского интерфейса, вам необходимо учитывать это.Размеры этих элементов задокументированы и широко доступны.

0 голосов
/ 27 мая 2011

Изображение (установленное в виде изображения), вероятно, будет самым простым решением, но лучшим выбором будет создание подкласса UIView и обработка чертежа самостоятельно путем переопределения drawRect: (если больше ничего вам не нужно иметь делос накладными расходами памяти на загрузку фонового изображения).OpenGL был бы излишним, но Quartz 2D-рисование (часть CoreGraphics) достаточно простое и хорошо сработало бы здесь.Посмотрите на CGContextMoveToPoint (), CGContextAddLineToPoint (), CGContextStrokePath () и связанные методы.Вам придется проделать определенную работу, чтобы правильно расположить сетку (особенно если вы хотите поддерживать несколько устройств / ориентаций), но сам рисунок не должен занимать много кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...