Вандад Нахавандипур

iOS. Приемы программирования


Скачать книгу

что текст подписи должен занимать не более трех строк, если этот текст не умещается в одной строке:

      – (void)viewDidLoad{

      [super viewDidLoad];

      CGRect labelFrame = CGRectMake(0.0f,

      0.0f,

      100.0f,

      70.0f);

      self.myLabel = [[UILabel alloc] initWithFrame: labelFrame];

      self.myLabel.numberOfLines = 3;

      self.myLabel.lineBreakMode = NSLineBreakByWordWrapping;

      self.myLabel.text = @"iOS 7 Programming Cookbook";

      self.myLabel.font = [UIFont boldSystemFontOfSize:14.0f];

      self.myLabel.center = self.view.center;

      [self.view addSubview: self.myLabel];

      }

      Теперь при запуске программы вы получите желаемый результат (рис. 1.47).

      Рис. 1.47. Подпись, текст которой занимает три строки

      Бывает, что вы не знаете, сколько строк понадобится, чтобы отобразить текст подписи. В таких случаях для свойства numberOfLines подписи задается значение 0.

      Если вы хотите, чтобы рамка, в которой находится подпись, имела постоянные размеры, а размер шрифта корректировался так, чтобы он входил в отведенные границы, необходимо задать для свойства adjustsFontSizeToFitWidth подписи значение YES. Например, если высота подписи равна 23.0f, как показано на рис. 1.46, то можно уместить шрифт подписи в этих границах. Вот как это делается:

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.view.backgroundColor = [UIColor whiteColor];

      CGRect labelFrame = CGRectMake(0.0f,

      0.0f,

      100.0f,

      23.0f);

      self.myLabel = [[UILabel alloc] initWithFrame: labelFrame];

      self.myLabel.adjustsFontSizeToFitWidth = YES;

      self.myLabel.text = @"iOS 7 Programming Cookbook";

      self.myLabel.font = [UIFont boldSystemFontOfSize:14.0f];

      self.myLabel.center = self.view.center;

      [self.view addSubview: self.myLabel];

      }

      1.18. Оформление UILabel

      Постановка задачи

      Требуется возможность оформлять внешний вид подписей – от настройки теней до настройки выравнивания.

      Решение

      Пользуйтесь перечисленными далее свойствами класса UILabel в зависимости от стоящей перед вами задачи.

      • shadowColor – свойство типа UIColor. Как понятно из названия, оно указывает цвет отбрасываемой тени для подписи. Устанавливая это свойство, вы должны установить и свойство shadowOffset.

      • shadowOffset – это свойство типа CGSize. Оно указывает размер отступа между тенью и текстом. Например, если вы зададите для этого свойства значение (1, 0), то тень будет находиться на одну точку правее текста. Если задать значение (1, 2), то тень окажется на одну правее и на одну точку ниже текста. Если же установить значение (-2, -10), то тень будет отображаться на две точки левее и на десять точек выше текста.

      • numberOfLines – свойство представляет собой целое число, указывающее, сколько строк текста может включать в себя подпись. По умолчанию значение этого свойства равно 1. Таким образом, любая создаваемая вами подпись по умолчанию может обработать одну строку текста. Если вы хотите сделать подпись из двух строк, задайте для этого свойства значение 2. Если требуется, чтобы в вашем текстовом поле могло отображаться неограниченное количество текстовых строк, либо вы просто не знаете, сколько строк текста в итоге понадобится отобразить, это свойство должно иметь значение 0. (Лично я нахожу это очень странным. Вместо NSIntegerMax или чего-то подобного в Apple решили обозначать неограниченное количество нулем!)

      • lineBreakMode