2015-09-23 4 views
1

У меня проблема с позиционированием элементов внутри ячейки таблицы. Они меняют свое положение, когда я листаю стол. Я установил autoresizhe и указал, где они должны быть, но налажете картинки на текст, и я не знаю, как их исправить. Я прочитал много статей, но не смог найти решение, подходящее для разных устройств. Пожалуйста, помогите мне. У меня есть текст и изображение, меняя позицию самостоятельно, когда я просматриваю или загружаю новую ячейку в таблицу. enter image description hereUIImage неправильное положение внутри ячейки таблицы

я добавить фиксированный размер для UIImageView внутри cellForRowAtIndexPath:

[cell.imageView setFrame:CGRectMake(0,0,self.view.frame.size.width,cell.imageView.frame.size.height)]; 

enter image description here

enter image description here

UPDATE: я сосредоточил свой файл XIb. Все ограничения - синий. но результат тот же - плохой. Я не знаю, как быть. Я подозреваю, что телефон не может рисовать. enter image description here

enter image description here

+0

Вы используете автозапуск? –

+0

@ Mr.T да я использую автозапуск и размеры. – user2759544

+0

можете ли вы добавить скриншот Раскадровки, показывающий, как вы добавили ограничения? – Johnykutty

ответ

1

Так как есть предупреждение, и вы отбрасываетесь, что предупреждение для ограничения кадра будет сброшен, показанными на желтом пунктирном прямоугольнике. Если какое-либо предупреждение в автоматическом ограничении макета, исправьте это сначала, тогда только IB покажет правильный фрейм, который будет во время выполнения.

Если вам необходимо установить динамическую высоту ячейки, основываясь на содержании у вас есть, пожалуйста, обратитесь в этом http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout

+0

Скажите, пожалуйста, как найти ошибку, что мне нужно удалить все ограничения и трикотаж доставить? И где может быть какая-то ошибка. – user2759544

+0

спасибо за помощь, но. Я заметил, что проблема возникает при прокрутке приложения. Чувство, что каждый раз, когда он воссоздает вязаный стол. У меня есть приложение для новостей, и когда я прокручиваю его, проблемы начинаются. – user2759544

+0

Это может быть связано с тем, что вы видите свойства ячейки в клеточном пороге по пути индекса – Johnykutty

1

Я предполагаю, что вы установите высоту ячейки таблицы должным образом, прежде чем перейти в любой autolayout вещи

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return x; //x is your table cell xib height 
} 

После того, как вы сделаете это, LEt перейдет в вашу ячейку таблицы. Вы обеспечили ведущую верхнюю и нижнюю части для всех ваших элементов, что хорошо.

Вам не нужно даже говорить об этом в методе cellForRowAtIndex:

[cell.imageView setFrame:CGRectMake(0,0,self.view.frame.size.width,cell.imageView.frame.size.height)]; 

Если вы пытаетесь изменить ImageView кадр после того, как вы установили ограничения, вам нужно позвонить

[cell.imageView updateConstraints]; 
    [cell updateConstraints]; 

If вы видите желтое предупреждение в автозапуске, сначала попробуйте разрешить его. Xcode предложит вам некоторые исправления для него, см., Что это работает для вас, выбрав элемент с желтым предупреждением и нажмите кнопку «Обновить фрейм» в раскадровке.

Посмотрите, работает ли это!

+0

обновите мое сообщение.Я исправил все желтые элементы. но моя проблема не удалена. – user2759544

+0

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

+0

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

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