Как я могу использовать UIView для рисования? - PullRequest
1 голос
/ 27 сентября 2011

Я реализую горизонтальную карусель элементов - немного похоже на UITableView, но с ячейками, расположенными горизонтально, а не вертикально. Я бы хотел, чтобы он поддерживал большое количество элементов, повторно используя один элемент и устанавливая его свойства только тогда, когда ему нужно нарисовать или коснуться вида.

Как мне это сделать? Могу ли я просто вызвать drawRect видов из drawRect карусели, или мне нужно сделать что-то более сложное?

Ответы [ 4 ]

1 голос
/ 27 сентября 2011

Также взгляните на PhotoScroller пример кода от Apple. Каждый эффективный.

1 голос
/ 27 сентября 2011

DTGridView выглядит хорошо, также рассмотрим iCarousel для iOS, который также будет делать стиль Coverflow

0 голосов
/ 27 сентября 2011

Вы не должны звонить drawRect: Вы хотите позвонить -[UIView setNeedsDisplay], чтобы вызвать -[UIView drawRect:].Это создаст графический контекст, в который вы будете рисовать.

Что касается макета, ваша карусель должна реализовать -[UIView layoutSubviews], который вы вызываете, вызывая -[UIView setNeedsLayout].

0 голосов
/ 27 сентября 2011

Я сомневаюсь, что это будет так просто, поскольку фактическое рисование в drawRect может произойти в другое время, чем настройка ячейки.Все в drawRect в идеале должно просто отвечать за то, чтобы на самом деле рисовать вещи в этом представлении, а не макет.

Следовательно, UITableView имеет целый набор методов для настройки разделов, строк и т. Д.* Возможно, вы захотите взглянуть на DTGridView Дэниела Тулла, который в основном делает именно то, что вы хотите достичь.

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