Мне нужна помощь в правильном наследовании существующей строки, чтобы я мог изменить только пользовательский интерфейс, а не функцию.Тип строки, которую я хотел бы поместить в подкласс - TextRow.
Опять же, я только хочу изменить UI , а не функциональность.
Eurek упоминает здесь способсделай это, но я не могу найти правильный способ сделать это.Я хотел бы, чтобы строки выглядели так.
Шаги в соответствии с Eureka:
Подклассы ячеек с использованием той же строки
Иногда мыхочу изменить внешний вид пользовательского интерфейса одной из наших строк, но без изменения типа строки и всей логики, связанной с одной строкой.В настоящее время есть один способ сделать это, если вы используете ячейки, которые создаются из nib-файлов.В настоящее время ни одна из основных строк Eureka не создается из nib-файлов, но некоторые пользовательские строки в EurekaCommunity, в частности, PostalAddressRow, который был перемещен туда.
Что вам нужно сделать, это:
- Создайте файл пера, содержащий ячейку, которую вы хотите создать.
- Затем установите класс ячейки в качестве существующей ячейки, которую вы хотите изменить (если вы хотите что-то изменитькроме чистого пользовательского интерфейса, вы должны создать подкласс этой ячейки).Убедитесь, что модуль этого класса установлен правильно
- Соедините розетки с вашим классом
Скажите вашей строке использовать новый файл пера.Это делается путем установки переменной cellProvider для использования этого кончика.Вы должны сделать это в инициализаторе, либо в каждом конкретном экземпляре, либо используя defaultRowInitializer.Например:
<<< PostalAddressRow () {$ 0.cellProvider = CellProvider (nibName: "CustomNib", комплект: Bundle.main)} </p>
Вы также можетесоздать новую строку для этого.В этом случае попытайтесь наследовать от того же суперкласса, что и строка, которую вы хотите изменить, чтобы наследовать ее логику.
При выполнении этого необходимо учесть некоторые моменты:
Если вы хотите увидеть пример, взгляните на PostalAddressRow или CreditCardRow, которые в своих примерах используют собственный файл пера.Если вы получаете сообщение об ошибке Unknown class <YOUR_CLASS_NAME> in Interface Builder file
, возможно, вам придется создать экземпляр этого нового типа где-то в вашем коде, чтобы загрузить его во время выполнения.Вызов let t = YourClass.self помог в моем случае.
В основном мне нужна помощь в настройке правильного xib / nib и класса для использования в форме.Спасибо.