Поведение макета UIView - PullRequest
0 голосов
/ 30 июня 2011

Я все еще новичок в том, как макет ведет себя в Какао. Скажем, у меня есть UIView с UIActivityIndicator и UILabel в качестве его подпредставлений. Рамка UILabel такая же большая, как и UIView, и для ее textAlignment установлено значение center. В тексте написано «Загрузка xxx ...», где xxx - строка, которая может меняться в зависимости от контекста.

Теперь, как мне сделать так, чтобы мой UIActivityIndicator всегда располагался точно слева от метки, независимо от того, сколько времени занимает текст? Помните, что текст выровнен по центру.

Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения.

1 Ответ

1 голос
/ 30 июня 2011

Простой способ реализовать это - вычислить ширину текста в вашей UILabel, а затем использовать результаты для позиционирования вашего UIActivityIndicator

// width & height of your activity indicator
CGFloat wai = 20, hai = 20;
CGSize textSize = [[label text] sizeWithFont:[label font]];
CGFloat w = textSize.width;
CGFloat ax = ((WIDTH_OF_THE_DISPLAY - w) / 2) - wai);
activityIndicator.frame = CGRectMake(ax, (HEIGHT_OF_DISPLAY- hai) /2, wai, hai);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...