Как я могу сделать настраиваемые представления на IOS? (я использовал style.id в качестве параметра в конструкторе класса представления Android) - PullRequest
0 голосов
/ 08 ноября 2019

Сначала я хочу поговорить о том, что именно я сделал на Android, и сейчас я пытаюсь сделать то же самое на IOS:

  • Я разработал библиотеку на Android, которая содержит действиеВ этом упражнении у нас есть несколько типов представлений (ярлыки, кнопки ... и т. д.). Эти представления используются в качестве точки входа / ввода для моей библиотеки, которая предоставляет некоторые услуги другим приложениям.

  • Чтобы соответствовать общему стилю пользовательского приложения, я создал свой собственныйView Classes, пользователь (из моей библиотеки) должен предоставить идентификатор стиля для действия перед его запуском, чтобы его можно было использовать при создании View.

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

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

На iOS естьЕсть очень много способов создания представлений (XIB, раскадровки, SwiftUI и программно). Я не совсем уверен, с чего начать.

Он пример моего кода на Android:

class MyView(val context: Context, val themeId: Int) : View(context) {
    init {
     val wrappedContext = ContextThemeWrapper(context, themeId)
     val mInflater = wrappedContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
     mInflater.inflate(R.layout.my_view_layout, this, true)
    }
}

1 Ответ

0 голосов
/ 08 ноября 2019

Это очень широкий вопрос, но короткий ответ: «Конечно, это возможно.»

Полагаю, что можно привести быстрый пример:

  • У меня естьcustom UIView с центром в UILabel, с отступом 20 пунктов со всех 4 сторон.
  • У меня определены 4 "темы", определяющие цвет фона представления, цвет текста надписи и надписистиль шрифта.
  • Я пишу пользовательскую функцию инициализации, которая принимает Int "id" от 1 до 4
  • Пользователь библиотеки может затем создать его экземпляр в соответствии с let myView = MyView(with themeId: 2)

Поскольку это очень широкий вопрос (тема), как только вы начнете разработку собственного представления, вы можете вернуться, если столкнетесь с конкретными вопросами кодирования.

...