Swift ios подключает несколько элементов к одному и тому же IBOutlet

Интересно, можно ли подключить несколько элементов к одному и тому же IBOutlet? В моем tableView я установил две ячейки и дал им уникальный идентификатор.

Но я подключил метку в каждой ячейке к одному и тому же IBOutlet в своем пользовательском классе UITableViewCell.

введите здесь описание изображения

class SearchSubCatTableViewCell: UITableViewCell {

  
    @IBOutlet weak var subCatTitle: UILabel!

Итак, у меня есть две метки, связанные с @IBOutlet weak var subCatTitle: UILabel!

Все это отлично работает, когда я тестирую приложение, но может ли это вызвать какие-либо проблемы?


person user2636197    schedule 11.08.2016    source источник


Ответы (6)


Да, это нормально, если вы не планируете выполнять какие-либо операции с этими ярлыками.

Правильный способ сделать это — создать массив IBOutlet:

@IBOutlet var collectionOfLabels:[UILabel]?
  • Подключите все свои метки к выходу этого массива меток.

  • Затем получите доступ к меткам через массив.

person Roy K    schedule 11.08.2016
comment
Что вы имеете в виду под операциями? Единственное, что я делаю сейчас, это устанавливаю заголовок - person user2636197; 11.08.2016
comment
Если вы установите заголовок один раз в построителе интерфейса, то все в порядке, но если вам нужно изменить его позже программно, это вызовет проблему. @user2636197 - person Roy K; 11.08.2016
comment
Может ли приложение вылететь? Прямо сейчас одна ячейка имеет статическую метку, а вторая ячейка имеет динамическую метку из данных JSON. - person user2636197; 11.08.2016
comment
Хорошие шансы, что в какой-то момент он рухнет, я бы посоветовал не рисковать и написать его правильно. - person Roy K; 11.08.2016
comment
Ничего, если я пройдусь по этим объектам, а потом что-нибудь с ними сделаю. Нравится менять альфу? - person Stijn Westerhof; 31.01.2017

Это может вызвать проблемы, когда вы попытаетесь выполнить некоторые операции с текстовыми данными метки. Я бы посоветовал вам взглянуть на IBOutlet Collections. Вы можете найти хороший учебник здесь.

person Vishal Sonawane    schedule 11.08.2016

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

Например: у вас есть один класс HeaderView с меткой и imageView, но у вас есть 3 отдельных файла xib, которые содержат HeaderView (скажем, для 3 типов устройств (iPhone, iPhone 6Plus и iPad). Вы устанавливаете класс этого представления как HeaderView и подключаете @IOBoutlets на одну ссылку.

Если вы хотите создать коллекцию @IBOutlet, вы должны определить свою розетку как массив типа. Например: @IBOutlet private var labels: [UILabel]!

person Daniel Sumara    schedule 11.08.2016

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

person Prashant Ghimire    schedule 11.08.2016

Нет, это не вызовет никаких проблем.

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

person NiCk.JaY    schedule 11.08.2016

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

person alchemist101    schedule 02.03.2018