Реализация макета Android Market в представлении iOS - PullRequest
0 голосов
/ 03 января 2012

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

Android Market Featured Apps

Сейчас я использую UITableView с пользовательскимклетки.Данные, которые я посылаю с сервера, являются чем-то вроде:

[
  {
    url: "app://url_of_content_in_the_app",
    image: "http://url of the featured image",
    height: 100
  }
},
{
  url: "app://url_of_content_in_the_app",
  image: "http://url of the featured image",
  height: 100
}
]

И я думал об обновлении пользовательской ячейки для поддержки 2 или 3 кнопок внутри каждой ячейки, но я не уверен в этомэто самый эффективный способ справиться с этим.Я также думал о простой HTML-странице, но я хочу, чтобы содержимое было легко кэшируемым.

Последний пункт, способ UITableView обрабатывает только горизонтальные подразделения, такие как:

_______
|__|__|
|_____|

Я не могу сделать что-то вроде:

_______
|  |__|
|__|__|

Ответы [ 2 ]

2 голосов
/ 03 января 2012

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

0 голосов
/ 03 января 2012

Я бы предложил поместить два (или 3) пользовательских подкласса UIView внутри ячейки. Если вы хотите, чтобы они были взаимодействующими с пользователем - добавьте свой собственный UIGestureRecognizer к представлению.

NSRect b = cell.contentView.bounds;
UIView *a = [[MyView alloc] initWithFrame:NSRectMake(NSRectGetMinX(b),NSRectGetMinY(b), NSRectGetWidth(b)/2., NSRectGetHeight(b))]; 
UIView *b; //... similarly
// set auto resize mask for a/b appropriately
[cell.contentView addSubview:a];
[cell.contentView addSubview:b];

(не проверено на опечатки)

хорошая ячейка с этим кодом инициализации - хорошая идея

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