创建类、结构或新的 swift 文件以创建具有特定样式的可重用文本框?

Posted

技术标签:

【中文标题】创建类、结构或新的 swift 文件以创建具有特定样式的可重用文本框?【英文标题】:Create class, struct, or new swift file to create reusable text boxes with a certain style? 【发布时间】:2020-03-10 02:18:54 【问题描述】:

我是 swift 新手,而且……嗯,一起编程。我已经学习了几个星期,但昨天才开始快速学习。 我正在尝试构建一个应用程序,它就像一个不同版本的真心话大冒险,你按下一个按钮,它会随机为你挑选一个,然后给你真心话大冒险。

我想使用一个带有一些设计的text 盒子,看起来基本上像一张卡片,代表真实,敢于挑战。我在想我可以如何将@State var 与这些项目的列表一起使用并让它随机显示一个。我将在那里再放一张卡片,但它不会像真心话大冒险那样普遍。

我只是不确定是否应该使用structclassswift 文件来创建这些文件以便我可以重复使用它们,因为list 将包含多个,因为为另一个神秘的人创造更多的稀有性。

【问题讨论】:

【参考方案1】:

好的,通常情况下,当您不知道如何开始时。据我了解,您的意思是“我需要创建什么?”。首先,我建议您肯定需要创建新的.swift 文件。 另外我建议您尝试将View 和一些逻辑分开。所以你的类或结构只会“提供一些数据”,而你的 View 只会呈现这些数据。 有关“您需要使用类还是结构”的更多信息,请阅读this Apple's article。很快:默认选择结构。 但请记住:这里几乎没有人会为您编写完整的代码,而且社区不喜欢这类问题。

我还建议您通过Apple SwiftUI tutorial 了解如何组织应用程序。我希望它能帮助你开始。

【讨论】:

【参考方案2】:

您可以创建自己的自定义文本框视图

或者您可以创建修饰符以应用于所需的文本框

两种方法都是正确的

import SwiftUI

//Create own view - Custom Text Box
@available(OSX 10.15, *)
public extension View 
    func CustomTextBox( ) -> some View
    
         Text()
             .AnyModifier1()
             .AnyModifier2()
             .AnyModifier3()
             .modifier( CustomModifier() ) // <- applying custom modifier
    


//Create custom modifier
@available(OSX 10.15, *)
public struct CustomModifier: ViewModifier 
    @State var checker: Bool = false

    public init()  

    public func body (content: Content) -> some View 
        HStack
            content
                .AnyModifier1()
                .AnyModifier2()
                .AnyModifier3()
        
    

【讨论】:

以上是关于创建类、结构或新的 swift 文件以创建具有特定样式的可重用文本框?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 最佳实践:为了可重用性,创建新的 CSS 类或新组件?

如何创建具有特定大小的 C 结构以通过套接字发送到 DalmatinerDB?

如何快速创建具有特定类型别名的闭包?

Swift4 初始化,文档代码。

以编程方式从 CollectionView 单元推送 viewController 不起作用 - swift

自动完成功能不适用于新的 SWIFT 文件/类