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

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


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

tabItem. Это свойство соответствует той вкладке, которая находится в актуальном контроллере вида. Вы можете пользоваться этим свойством, чтобы задавать изображение для вкладки. Изображение для вкладки задается через ее свойство image. Я уже сделал два изображения – прямоугольник и кружок, а теперь выведу их как изображения для вкладок, соответствующих каждому из моих контроллеров видов. Вот код для первого контроллера вида:

      – (id)initWithNibName:(NSString *)nibNameOrNil

      bundle:(NSBundle *)nibBundleOrNil{

      self = [super initWithNibName: nibNameOrNil

      bundle: nibBundleOrNil];

      if (self!= nil) {

      self.title = @"First";

      self.tabBarItem.image = [UIImage imageNamed:@"FirstTab"];

      }

      return self;

      }

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.view.backgroundColor = [UIColor whiteColor];

      }

      А вот код для второго контроллера:

      – (id)initWithNibName:(NSString *)nibNameOrNil

      bundle:(NSBundle *)nibBundleOrNil{

      self = [super initWithNibName: nibNameOrNil

      bundle: nibBundleOrNil];

      if (self!= nil) {

      self.title = @"Second";

      self.tabBarItem.image = [UIImage imageNamed:@"SecondTab"];

      }

      return self;

      }

      – (void)viewDidLoad{

      [super viewDidLoad];

      self.view.backgroundColor = [UIColor whiteColor];

      }

      Запустив приложение в эмуляторе, увидим такую картинку, как на рис. 1.44.

      Рис. 1.44. Элементы панели вкладок с изображениями

      1.17. Отображение статического текста с помощью UILabel

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

      Необходимо отображать для пользователя текст. Кроме того, вы хотели бы управлять шрифтом и цветом этого текста.

      Статическим называется такой текст, который пользователь не может напрямую изменять во время исполнения.

      Решение

      Используйте класс UILabel.

      Обсуждение

      Подписи (Labels) встречаются в iOS повсюду. Они используются практически в любых приложениях, за исключением игр, для отображения содержимого которых обычно применяется OpenGL ES, а не основные фреймворки отрисовки, входящие в состав iOS. На рис. 1.45 показаны несколько подписей, имеющихся в приложении Settings (Настройки) для iPhone.

      Рис. 1.45. Подписи в качестве названий настроек

      Как видите, подписи содержат текстовые названия разделов приложения Settings (Настройки), в частности iCloud, Twitter, FaceTime, Safari и т. д.

      Чтобы создать подпись, необходимо инстанцировать объект типа UILabel. Установка или получение текста для подписи осуществляется с помощью свойства text. Итак, определим подпись в файле реализации контроллера нашего вида:

      #import "ViewController.h"

      @interface ViewController ()

      @property (nonatomic, strong) UILabel *myLabel;

      @end

      @implementation ViewController

      

      А теперь в viewDidLoad инстанцируем подпись и сообщаем среде времени исполнения, где следует разместить подпись (эта информация указывается в свойстве frame) и в какой вид она должна быть добавлена. В данном случае подпись окажется в виде контроллера нашего вида:

      – (void)viewDidLoad{

      [super viewDidLoad];

      CGRect labelFrame = CGRectMake(0.0f,

      0.0f,

      100.0f,

      23.0f);

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

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

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

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

      [self.view addSubview: