2014-10-29 5 views
7

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

Я не могу получить ограничения совершенно правильно.

Я уложил ярлыки в пользовательскую панель Table View, но метки все еще обрезаны. Есть идеи?

Спасибо! Поставит все, что нужно. Пробовал показать необходимую информацию на рисунке ниже:

Отладка в Xcode. Как-то то, что показывает в Simulator, выглядит иначе, чем при отладке Xcode.

Вот ширина моей TableView показано: enter image description here

UPDATE: Проблема была связана с тем, что пользователь сказал матовое в общепринятом ответ, но я хотел бы сделать Q & А немного понятнее теперь, когда я понял, кто-то еще это понимает.

В своем первоначальном комментарии он упомянул об отладке Xcode View, которая была отличной, и я смог вникать в немного больше. Его называют редактором-помощником: предварительный просмотр устройства, где вы можете увидеть макет и слои того, что на экране, чтобы увидеть, возможно, у вас есть ярлыки, перекрывающиеся или выходящие из экрана на основе устройства, на котором оно работает. Если вы хотите проверить несколько размеров устройства, просто нажмите значок «плюс» в нижнем левом углу этого изображения. enter image description here

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

Что также иногда помогает использовать меню контактов. Иногда метки могут выходить из экрана, потому что он не знает, где ограничения ячейки основаны на размере устройства. Таким образом, ваш ярлык может работать вне экрана, если ярлык основан на ландшафтном макете, но устройство является iPhone 5 и, например, в портрете. Это меню Pin:

enter image description here

Надежда, что имеет смысл и дает немного больше цвет проблемы. Дайте мне знать, если у вас есть какие-либо вопросы, спасибо за помощь всем!

+0

Hi еще раз. Вы знаете, что Xcode 6 просматривает отладку, правильно? (Это похоже на Reveal.) Поэтому используйте Xcode 6 для отладки, чтобы увидеть, что на самом деле происходит здесь. – matt

+0

@matt yeah Я пытаюсь понять это, потому что он показывает мне нечто иное, чем то, что я запускаю в симуляторе, поэтому я не уверен, что происходит? Я обновил свой вопрос, чтобы показать 2 дополнительных снимка того, что показывает демонстрация симулятора и просмотра. Если у вас есть идеи, почему это происходит, расскажите. – Realinstomp

+0

Ну, это похоже на то, что я предложил по другому вопросу, который вы задали, - это не те ярлыки, которые являются проблемой, это слишком широкое представление таблицы. – matt

ответ

10

Проблема заключается в том, что вы используете автоматическую раскладку, но вы ничего о проклейки вид таблицы не сделано. Вид таблицы здесь не является видом вашего контроллера; это подпункт. Представление контроллера вашего вида автоматически зависит от размера устройства/окна, но его просмотры не изменяются автоматически. Таким образом, вы получаете табличное представление, слишком широкое для устройства; вся таблица торчит в космос с правой стороны.

+0

Имеет смысл, спасибо за то, что написано здесь немного больше, поэтому, как минимум, мне понадобится какое-то ограничение в правильном размере, это звучит как – Realinstomp

+0

Нет, не «как минимум». Ограничения _must_ определяют все размеры и положение _completely_. – matt

+0

К угадыванию я должен был быть яснее, когда писал это, не как минимум, но как «один из минимумов», вы правы, спасибо! – Realinstomp

3

Используйте косое пространство справа от наклеек до края их надтаблицы, и установить его на greater than вместо equals со значением ~ 5

+0

Добавил еще один снимок экрана к моему оригинальному вопросу, показывающий, что я пробовал по вашему предложению, и по какой-то причине его все еще отрезает, что-то не замечает вас, что мне не хватает? Спасибо, Леви! – Realinstomp

+0

Это выглядит хорошо, но, возможно, это супервизор выключен. Вы должны разместить точку останова в методе 'cellForRowAtIndexPath' или' willDisplayCellForRowAtIndexPath' (возможно, лучше здесь) и посмотреть, какая из подзонов ячейки имеет большую ширину, чем должна. – Levi

2

Обзора ограничений вашего Tableview с видом. Рисовать границу ячеек, границу ярлыка и границу таблицы с разными цветами, чтобы знать, какие элементы отображаются неправильно.

Ex:

#import <QuartzCore/QuartzCore.h> 

... 
cell.layer.border.width = 1; 
cell.layer.border.color = [UIColor blackColor].CGColor; 
+0

Привет @ tyt_g207, спасибо за ответ, я обновил свой оригинальный вопрос двумя скриншотами из Xcode 6, которые отлаживают подобную вещь. Проблема, как вы увидите, заключается в том, что в Simulator работает что-то, что выглядит несколько иначе, чем «Просмотр отладки», и я не уверен, почему? – Realinstomp

+0

Это зависит от цели, которую вы запускаете. Я полагаю, что вы установили размер (в Simulated Metrics), чтобы контент не растягивался автоматически. Добавьте в свою программу NSLog(), чтобы показать фрейм вашего View, TableView, Cells. Для просмотра каждого размера кадра существует API NSStringFromCGRect(). –

+0

Звучит неплохо, я попробую! – Realinstomp

0

Вещь, которая работала для меня, чтобы разрешить просматриваемые виды, заключалась в том, чтобы снять флажок «Ограничение на полях» в Автомаке.

enter image description here

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