2014-01-31 3 views
0

У меня есть странная проблема. Я использую Interface Builder для создания пользовательского TableCell с тремя наклейками и один UIImageView:UIImageVIew в TableCell показывает не правильный SIze

enter image description here

Я хочу, что ячейка имеет мало места в TableView (синяя граница), так что я поставил дополнительный вид внутри ячейки. Как вы видите, UIImageVIew очень мал и не превышает двух ярлыков, но когда я запускаю свой код на устройстве, UIImageView высок, как белый вид, и даже немного покрывает ярлык. Единственное, что я делаю в своем кодексе:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
static NSString *CellIdentifier1 = @"CustomCellReuseID"; 

GTEventCustomCell *eventCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
if (eventCell == nil) { 
    eventCell = [[GTEventCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1]; 
} 

// Configure the cell... 
[eventCell.imageView setImage:[UIImage imageNamed:@"heart.png"]]; 
. 
. 
. 

Что не так?

+0

ImageView получает рамку от heart.png размер? Попробуйте установить eventCell.imageView.frame после того, как вы присвоите изображение или измените настройки изображенияПриложение в масштабе, чтобы заполнить –

+0

, поскольку @OlegFedorov сказал, попробуйте с modeScale, вы даже можете использовать cliptoBounds = yes – santhu

ответ

1

Это исправить вашу проблему:

eventCell.imageView.contentMode = UIViewContentModeScaleAspectFit; 
+0

Спасибо, что исправил проблему :) – Davis

+0

Вы радушны. .. –

0

Я надеюсь, что вы не пропустили ограничения автоматической компоновки для объектов внутри пользовательской ячейки.

Если не выберите ярлык/вида в редакторе панели инструментов> Решение проблем Auto Layout> добавить недостающие ограничения

и изменить ограничение Автокомпоновки, как вам нужно.

0

Я просто думаю, что вы должны изменить свои свойства на правой панели.

Вы также можете деактивировать ограничения автоопределения и, чтобы быть точными, чтобы разместить ваши товары в хорошем месте, установите их программно.

пример: в верхней части файла:

#define X_Cell_Padding 10 
#define Y_Cell_Padding 10 

в методах cellForRow:

[[cell yourImageView] setFrame : CGRectMake(X_Cell_Padding, Y_Cell_Padding, yourImageView.frame.size.width, yourImageView.frame.size.height)]; 

не забудьте создать пользовательский класс клеток с IBOutlet yourImageView и установить это класс для ячейки в вашем раскадровке/xib

Смежные вопросы