2014-09-01 5 views
0

Я новичок в программировании на iOS, очевидно, новичок в Swift (как новый), и в лучшем случае в целом в программировании за последние 35 лет. Тем не менее, я работал в течение последних 20 лет в качестве менеджера мультидисциплинарных команд, которые включают программистов, и в результате я понимаю множество фундаментальных концепций разработки программного обеспечения. Я предоставляю эту информацию для контекста.iOS Swift: UITapGestureRecognizer and Storyboard

Я работаю над приложением для базы данных для класса и добавляю множество функций по своему выбору, чтобы улучшить свой собственный опыт обучения. Я вчера хотел разрешить пользователям использовать UIImageView для выбора нового изображения для записи в базе данных. Я добавил Recognizer жесткого диска в UIImageView и подключил IBAction к соответствующему контроллеру представления, а затем добавил println() в IBAction, чтобы проверить, распознается ли он. Отводы на UIImageView не производят Println(), и я был разочарован, так что я посмотрел вокруг на трубках для некоторых подсказок и нашел некоторые примеры кода для программного признать кран:

let recognizer = UITapGestureRecognizer(target: self, action: Selector("didTap:")) 
recognizer.delegate = self 
view.addGestureRecognizer(recognizer) 

Это работало лечить, как они сказали. Я был расстроен, однако, поскольку я видел много ссылок на идею о том, что код не нужен, если я использую раскадровку. После нескольких экспериментов с тестовым проектом я в конце концов обнаружил, что UIImageView должен был включить «Взаимодействие с пользователем» в Инспекторе атрибутов (не по умолчанию) для распознавания взаимодействия с пользователем, что в ретроспективе имеет смысл.

Мой вопрос (наконец!) Заключается в том, является ли различие между двумя подходами стилистическим или есть ли причина, чтобы сделать это программно над реализацией через раскадровку. Для исполнения или делегирования или иным образом. Я могу, например, увидеть, что я могу вставить код распознавания в оператор if. Есть ли другие причины?

Этот вопрос слишком теоретический для этого формата?

ответ

1

IMHO, я всегда использую раскадровки, если и до тех пор, пока не встречу что-то, что нужно сделать в коде. Мне просто концептуально легче понять общую форму приложения, если я вижу его в больших взаимосвязанных кусках. Не должно быть заметных различий в производительности.

Что касается вашего конкретного примера, когда у меня есть изображение, которое должно быть поддающимся отображению, я просто помещаю изображение в UIButton и зажимаю кнопку до IBAction в контроллере. Это устраняет необходимость добавления настраиваемого распознавателя жестов и запоминания для удобства отображения изображения.

+0

Благодарим вас за ответ! –

+0

Отсутствие активности по этой теме заставляет меня поверить, что ответ «личный стиль». Я отмечу, что он ответил. Благодаря! –

Смежные вопросы