如何在 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 视图类构造函数的参数)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上制作垂直滚动视图?

如何在 iOS 中制作可滚动视图?

如何制作mapbox数字风格

iOS 自定义 Segue 不工作

如何制作滚动视图,滚动iOS时在特定页面中滚动

如何在 iOS 6 中使用具有多个子视图的现有自定义视图自动布局