Лучшее возможное решение:
Первый: Если вы делаете это программно, вам нужно будет выполнить инициализацию с помощью фрейма и некоторых настроек:
// Simple example
int yPosition = 10;
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0, yPosition, self.view.frame.size.width, 0)];
[label setText: @"Testing..."];
[label setBackgroundColor: [UIColor clearColor]];
[label setNumberOfLines: 0];
[label sizeToFit];
Секунда: Если метка, которую вы пытаетесь отцентрировать, вы можете просто запустить это после вызова селектора setNumberOflines
и присвоения 0 value
, в вашем тексте будут все необходимые строки и метод sizeToFit
позвонил, чтобы иметь хорошую настройку, и, наконец,
[self.label setCenter: CGPointMake(self.view.center.x, self.label.center.y)];
Это будет центрировать only the X axis
, и Y axis
останется так, как вам нужно при инициализации кадра.
PS: Это также верно, если не для UILabel
, но в зависимости от используемого вами элемента управления потребуется другая простая настройка или ни того, ни другого, и если вы хотите только программно центрировать, но сконструированы interface builder
, просто нужно запустить second code
.