Отступ сгруппированных ячеек, таких как контакты iPhone - PullRequest
3 голосов
/ 04 марта 2011

Мне бы хотелось иметь таблицу в виде группы, в которой в первом разделе есть 2 строки и 1 изображение, как в приложении контактов.

что-то вроде этого: screeshot

Как я могу это сделать?

Спасибо, Max

Ответы [ 3 ]

3 голосов
/ 02 декабря 2012

Другие решения требуют от вас создания собственных фоновых изображений и использования двух табличных представлений, что не удобно. То, что я сделал, было подклассом UITableViewCell и с отступом фоновых представлений как таковой:

#define INDENT_WIDTH 84

...

- (void)layoutSubviews
{
    [super layoutSubviews];

    //Indent the background views.
    CGRect frame = self.backgroundView.frame;
    frame.origin.x = frame.origin.x + INDENT_WIDTH;
    frame.size.width = frame.size.width - INDENT_WIDTH;
    self.backgroundView.frame = frame;
    self.selectedBackgroundView.frame = frame;

   //Also indent the UIImageview that contains like a shadow image over the backgroundviews (in grouped tableview style only).
   for (UIView *subview in self.subviews) {
        if ([subview isKindOfClass:[UIImageView class]]) {
            CGRect frame = subview.frame;
            frame.origin.x = frame.origin.x + INDENT_WIDTH;
            frame.size.width = frame.size.width - INDENT_WIDTH;
            subview.frame = frame;
        }
   }
}

Поскольку представление содержимого имеет прозрачный цвет фона, вы можете разместить UIImageView (например, на прототипе ячейки раскадровки) с левой стороны, и вы должны получить тот же эффект, что и представление «Добавить контакт» в приложении «Контакты».

1 голос
/ 04 марта 2011

Пожалуйста, посмотрите этот вопрос:

Можно ли настроить ширину UITableViewCell?

Кажется, что нет никакого удобного способа на самом деле уменьшить ширинуячейка (или группа ячеек).

0 голосов
/ 04 марта 2011

Вы можете добиться того же на скриншоте:

(1) Контроллер родительского представления с представлением, имеющим цвет фона, подобный цвету UITableViewStyleGrouped.

(2) Добавьте фотографию в UIImageView, который будет подпредставлением к (1)

(3) Добавьте UITableView (сгруппированный стиль) с правой стороны снова как подпредставление к (1)

Установите кадры обоих подпредставлений правильно и соответственно для макета на скриншоте и используйте делегирование для «логического подключения» обоих подпредставлений.

Редактировать: Цвет фона можно получить с помощью [UIColor colorWithPatternImage: (UIImage *) image]. Просто обрежьте фон из любого примера приложения на симуляторе iphone.

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