如何在IOS上进行可定制的视图? (我将style.id用作android view类构造函数上的参数)

首先,我想谈一谈我在Android上所做的工作,现在我正尝试在IOS上做同样的事情:

  • 我在Android上开发了一个库,其中包含一个活动,在该活动中,我们有几种视图类型(标签,按钮等)。 这些视图用作我的库的入口点/输入,为其他应用程序提供了一些服务。

  • 为了能够与用户应用程序的常规样式匹配,我创建了自己的View类,(我的库的)用户需要在启动活动之前为活动提供样式ID,因此可以构造视图时使用。

  • 这样做,我们能够维持应用程序的样式,而无需为使用我的库的每个应用程序重新实现视图,或者使用户(物理设备上的最终用户)感到刚刚移到另一个应用程序。

我真的是iOS上的新手,我最近开始学习它,所以我不确定该怎么做,请您提供一些指导吗?

在iOS上,创建视图的方法有很多(xib,Storyboards,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)
    }
}
fankaoquan 回答:如何在IOS上进行可定制的视图? (我将style.id用作android view类构造函数上的参数)

这是一个非常广泛的问题,但简短的答案是“可以做到。”

我想一个简单的例子可能是:

  • 我有一个自定义UIView,其中以UILabel为中心,在所有4边上都填充了20点的内容。
  • 我定义了4个“主题”,分别定义视图的背景色,标签的文本颜色和标签的字体样式。
  • 我编写了一个自定义init函数,以接受1到4的Int“ id”
  • 然后,库用户可以按照let myView = MyView(with themeId: 2)的方式实例化它。

这是一个非常广泛的问题(主题),一旦开始开发自定义视图,如果遇到特定的编码问题,您可能会回来。

本文链接:https://www.f2er.com/3137612.html

大家都在问