如何在 IOS 上制作可自定义的视图? (我使用 style.id 作为 android 视图类构造函数的参数)
Posted
技术标签:
【中文标题】如何在 IOS 上制作可自定义的视图? (我使用 style.id 作为 android 视图类构造函数的参数)【英文标题】:How can i make customizable views on IOS ? (i used style.id as a parameter on android view class constructor) 【发布时间】:2019-11-08 13:25:28 【问题描述】:首先我想谈谈我在 android 上到底做了什么,现在我正在尝试在 ios 上做同样的事情:
我在 Android 上开发了一个库,其中包含一个活动,在该活动中,我们有几种类型的视图(标签、按钮......等)。 这些视图用作我的库的入口点/输入,为其他应用程序提供一些服务。
为了能够匹配用户应用程序的一般风格,我创建了自己的视图类,用户(我的库)需要在启动活动之前为活动提供一个样式 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)
【问题讨论】:
【参考方案1】:这是一个非常广泛的问题,但简短的回答是“当然可以。”
我想一个简单的例子可能是:
我有一个自定义的UIView
,其中有一个 UILabel
,所有 4 边都有 20 分的填充。
我定义了 4 个“主题”,定义了视图的背景颜色、标签的文本颜色和标签的字体样式。
我编写了一个自定义 init 函数来接受 1 到 4 的 Int“id”
然后库用户可以按照let myView = MyView(with themeId: 2)
的方式对其进行实例化
由于这是一个非常广泛的问题(主题),一旦您开始开发自定义视图,如果您遇到特定的编码问题,您可能会回来。
【讨论】:
以上是关于如何在 IOS 上制作可自定义的视图? (我使用 style.id 作为 android 视图类构造函数的参数)的主要内容,如果未能解决你的问题,请参考以下文章