2016-05-27 2 views
0

У меня есть TableView с использованием основного или субтитров UITableViewCell и отображения изображения/значка. Строка разделителя автоматически отступы и начинается там, где отображаются метки. Все идет нормально. (see correct behavior)Пользовательский UITableViewCell с изображением и меткой

Теперь мне нужна еще несколько ярлыков и изображение. Поэтому я создал обычай TableViewCell с 4 ярлыками. Без изображения они работают так, как ожидалось. Но когда я добавляю изображение к существующему стандарту ImageView, изображение отображается, строка разделителя имеет отступ, но пользовательские метки не являются. Они накладывают изображение. (see wrong behavior)

Должен ли я создать собственный ImageView, а чтобы он правильно работает и как разделитель строки с отступом на этом пути или есть другая возможность/состояние искусства, чтобы сделать что-то подобное?

+0

Вы используете ограничение автоопределения ??? –

+0

Вы можете установить ограничения авторезистирования, такие как: http://stackoverflow.com/questions/34669208/how-to-resize-custom-uitableviewcell-nib-file-to-fit-tableview/34670166#34670166 –

+0

Как вы добавили метки и изображение? в самом коде или в файле .xib? – Aneesh

ответ

0

я, наконец, закончился решением, которое я создал пустой интерфейс Builder документ, добавил TableViewCell, поставил Label и ImageView на нем, установить ограничение, связанное все к соответствующему * .swift файлу. Конец. Я надеялся повторно использовать ImageView по умолчанию TableViewCell, но, очевидно, это не сработало правильно (или я был слишком глуп).

0

1. Сначала создайте розетку всех четырех пользовательских элементов, таких как этикетка и изображение, как: - lblOne, lblTwo, lblThree, imageView, соответственно.

2. Затем перейдите посмотреть Viewdidload и создать словарь: -

NSDictionary *viewsDictionary = @{@" @"superview":self.view, 
             @"lblOne":self.lblOne, 
             @"lblTwo":self.lblTwo, 
             @"lblThree":self.lblThree, 
             @"imageView":self.imageView 
             }; 

3. Теперь добавьте ограничение Autolayout программно: -

NSArray *lblOutletCenterConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[superView]-(<=1)-[lblOne]" options:NSLayoutFormatAlignAllCenterX metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:lblOutletCenterConstraint]; 

NSArray *lblOutletCenterConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[superView]-(<=1)-[lblTwo]" options:NSLayoutFormatAlignAllCenterX metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:lblOutletCenterConstraint]; 

NSArray *captionTopConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[lblOne]-25-[imageView]" options:0 metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:captionTopConstraint]; 

NSArray *captionTopConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[lblTwo]-25-[lblThree]" options:0 metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:captionTopConstraint]; 

4. Или вы может сделать это и с помощью раскадровки.