2014-11-07 3 views
0

Я хочу использовать автоматическую компоновку для отображения содержимого ячейки таблицы. Это работало до сих пор. Теперь я хочу выровнять UILabel в правой части таблицы. Если я это сделаю, он не будет правильно выровнен. Вместо этого он полностью находится на левой стороне. Таким образом, ширина привязки таблицы не вычисляется при применении ограничения. Я попробовал два различных подхода:Выровнять ярлык в UITableViewCell справа с помощью автоматического макета

No. 1:

this.ContentView.AddConstraints (NSLayoutConstraint.FromVisualFormat ("H:[iNumberLabel]-|", (NSLayoutFormatOptions)0, null, viewsDictionary)); 

No. 2:

this.ContentView.AddConstraint (NSLayoutConstraint.Create (iNumberLabel, NSLayoutAttribute.Right, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Right, 1, 0)); 

Ограничения добавляются в UpdateConstraints в моей таблице вид клеток подкласса. Код находится в C#, но это не имеет значения. Я был бы рад, если бы вы могли предоставить решение.

ответ

1

Этот формат строка: "H:|-[iNumberLabel]-|"

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

"H:[iNumberLabel]-|" 

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

+0

Ох спасибо. У меня было это правильно, но для целей тестирования я использовал «H: | - [iNumberLabel] - |'. Это единственное горизонтальное ограничение. Хмм ... – testing

1

В дополнении к прижав его к правой стороне с:

"H:[iNumberLabel]-|"

Вы также должны rightAlight текста с:

cell.textLabel.textAlignment = NSTextAlignmentRight;

+0

Спасибо за ваше дополнение. Это не помогло. – testing

0

Edit: только работает прошивка 8 . В настоящее время нет решения для iOS 7.

Это был виновником

this.ContentView.TranslatesAutoresizingMaskIntoConstraints = false;

Я имел этот набор, когда я создал и добавил свои метки, как подвид. Когда это отключено, ширина ячейки кажется неправильной. Возможно, нужно добавить дополнительные ограничения для ContentView, но я не знаю, какой (просмотр содержимого для супер-просмотра?).

Маска изменения размера должна быть включена для просмотра содержимого.

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