Все еще нечетко при создании объектов в Code, IB и в сочетании - PullRequest
1 голос
/ 21 января 2012

Я все еще довольно новичок в XCode и т. Д., Поэтому я немного запутался, когда дело доходит до создания / использования объектов в XCode.

Например, я использовал учебник по созданию GestureRecognizer в коде -довольно просто.

Прямо сейчас у меня есть только это в моем .h:

@interface PlayPage : UIViewController <UIGestureRecognizerDelegate>

И это в моем .m:

UITapGestureRecognizer *tapTwo=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap)];
[tapTwo setDelegate:self];
[tapTwo setNumberOfTapsRequired:2];
[tapTwo setNumberOfTouchesRequired:1];
[self.view addGestureRecognizer:tapTwo]; //adds it to view

Вот мой вопрос (s):

1) Если я также хочу увидеть GestureRecognizer в IB вместе с приведенным выше кодом (возможно, чтобы я мог изменить некоторые настройки, так как я не знаком со всем), как мне это сделать?

2) Как вы решите, когда использовать весь код, а не код / ​​IB?Строго ли это вопрос стиля / комфорта / знакомства?

3) Кажется, что для объявления разных объектов требуется разный код установки (UITextLabel против GestureRecognizer против UITextField, например) - как узнать, когда использовать какойкод?

Спасибо за помощь в прояснении.

1 Ответ

1 голос
/ 21 января 2012
  1. В Xcode 4.x Interface Builder есть UIGestureRecognizer объекты, которые вы можете перетаскивать на свои виды.Поэтому вам нужно добавить UIGestureRecognizer в Интерфейсный конструктор (если вам нужно выполнить больше настроек в коде, а затем подключить их к розетке).

  2. Я пытаюсь иделать все, что я могу в IB и переходить к коду, когда это необходимо, но это вопрос предпочтений.

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


Обновление

Вам необходимо создать UIGestureRecognizer в Интерфейсном Разработчике, а не свой код.

В Интерфейсном Разработчике убедитесь, что боль Utilities видима, и перетащите UIGestureRecognizerтребуемого класса на ваш взгляд

Вот как выглядит класс UIGestureRecognizer:

UIGestureRecognizer subclasses

Затем вы настраиваете объект на панели Utilities,Если вы хотите иметь доступ к этому объекту в своем коде, вам понадобится IBOutlet.

. В заголовочном файле вашего класса добавьте новый ivar для этого

@property (nonatomic, retain) IBOutlet UITapGestureRecognizer *tapGestureRecognizer;

.Файл реализации синтезирует этот

@synthesize tapGestureRecognizer = _tapGestureRecognizer;

Затем вернитесь в Интерфейсный конструктор и подключите его с помощью ctrl + click + dragging из File's Owner в UIGestureRecognizer подкласс.Затем выберите ваш ивар в появившемся окне:

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...