2010-07-29 2 views
3

У меня есть UITableView (320 шириной) с UITableViewCell, созданным в IB, ячейка также имеет ширину 320. После установки фонового изображения (320 ширины) в UITableViewCell (или моего подкласса, чтобы быть правильным) я заметил, что ячейки не соответствуют правой стороне пользовательского интерфейса (обратите внимание на синий цвет на выбранной ячейке и серый на вышеперечисленном) Кто-нибудь знает, что вызывает это?UITableViewCell странная ширина?

alt text

Приветствия Гэри

+0

Убедитесь, что содержимое вашей камеры также имеет правильную ширину. –

ответ

3

Я устанавливал стиль Seperator и цвет Seperator на UITableView, это занимает 1 пиксель выкл высоты ячейки для разделителя и смещает Backgound примерно на 5 пикселей правильно. Если я уменьшу фоновое изображение, идущее в ячейку от 320x65 до 320x64, оно идеально подходит без смещения.

alt text

Единственное различие между этими двумя экранами ниже является:

ЛЕВЫЙ: UITableView Seperator = "None" (UITableViewCell фон имеет никакого смещения)

ПРАВЫЙ: UITableView Seperator = «Одиночная линия» (фон UITableViewCell имеет смещение)

ДАННЫЕ:

  • разрешение Cell: 320x65
  • вид Cell: 320x65
  • фона ячейки Разрешение изображения: 320x65

Если вы хотите использовать разделитель вашего сотового Фоновое изображение должно быть 320x64, это остановит он сдвигается вбок и правильно отображает ячейку.

Приветствия Гэри

0

Мне кажется, что вы просто не устанавливая contentMode вашего фона зрения изображения правильно (т.е. вы устанавливаете его aspectFit или что-то). Вы уверены, что он смещен на 5, а не уменьшен на 5 пикселей?

Например, если исходное изображение 320x65, а высота уменьшена до 64, aspectFit будет масштабировать его, сохраняя при этом одинаковое соотношение сторон, до 64/65 * 320 ~= 315.

+0

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

+0

Я только что испытал это, поставив 1 пиксельную белую границу вокруг черной ячейки 320x65, причем разделитель на границе точно касается всех сторон ячейки, кроме правого, где белый установлен назад по синему внизу. Таким образом, высота правильная, ее ширина, которая масштабируется. – fuzzygoat

+0

Если я читаю вас правильно, у вас есть изображение 320x65, все черные, за исключением белой границы. Если это правда, то с включенным разделителем вы устанавливаете изображение 320x65 в представление 320x64, и это уменьшает масштаб изображения до 315x64 из-за соотношения сторон. Опять же, правильная настройка вашего contentMode устранит эту проблему (в этом случае вам понадобится scaleToFit). –

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