问题标签 [viewmodifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 如何解决 Swift 泛型类型转换
我有这样的代码
它应用修饰符 withTabItem,它应该返回某种类型的 TabItemView,其中包含属性中的 tabItem 和内容,并且只呈现内容。
然后在代码中的其他地方,我想将 View 转换为这个 TabItemView 以从它访问 tabItem 属性,如下所示:
但是这种铸造是不可能的。
更新
我已经这样改了
而这个ViewModifier的新实现很简单,像这样
但问题是我只能在 MenuView 中直接使用它。在 Page1() 中使用此修饰符,导致该视图隐藏在 Page1 下,然后在 MenuView 的实现中我无法通过上述转换访问此修饰符,也没有对此修饰符链的引用。
swift - SwiftUI ViewModifier - 添加字距调整
有没有办法构建一个应用自定义字体和字体大小的视图修改器,如下面的工作示例,并且在同一个修改器中也可以添加字距调整?
上面的效果很好,但是我无法弄清楚如何将字距调整添加到修饰符
试过了
,但没有奏效。
建议?
swiftui - 如何有条件地呈现 SwiftUI 上下文菜单?
考虑以下视图代码:
这工作正常。我想做的:通过视图修饰符间接呈现 contextMenu。像这样的东西:
为什么:我需要在修饰符内部做一些逻辑来有条件地显示或不显示菜单。我无法为它计算出正确的视图修饰符签名。
还有另一个 contextMenu 修饰符可用,它声称我可以有条件地为其呈现上下文菜单。尝试此操作后,这对我没有帮助,因为一旦我将 contextMenu 修饰符添加到 iOS 上的 NavigationLink,其上的点击手势就会停止工作。在下面的回复中有讨论。
如何使用视图修饰符呈现上下文菜单?
swiftui - 如何使用 ViewModifiers 返回视图
我想根据数组中字段的内容返回一个视图。这可行,但如果我尝试将 ViewModifiers 添加到视图中,我会遇到问题。这行不通。
错误消息是: 函数声明了一个不透明的返回类型,但其主体中的返回语句没有匹配的底层类型
如何使用 ViewModifier 声明函数以获取结果?对于不同的返回视图,我需要不同的布局。
foreach - 如何一次为部分中的文本字段实现视图修饰符?
我认为必须有一种方法可以为部分中的每个文本字段使用修饰符,而不必为每个文本字段键入它们。可以使用 ForEach 或其他我不知道的东西来实现下面示例的结果吗?
swift - SwiftUI:内容是形状的 ViewModifier
以下代码工作正常。所以真的,我很好......但我想了解 ViewModifiers......所以我的目标是将不变的东西与动态的东西分开,以创建一个.cardify()自定义修饰符来调用 Shapes 视图.
同样,出于学术/学习的原因,我想简化这个结构,并使用自定义修饰符将主要内容转换为标准卡片。
下面的代码块仅在我注释掉ViewModifier 结构content
中的第二行时才有效。Cardify
所有使用填充形状作为点的卡片都可以很好地渲染。需要描边(即不填充)形状的卡片需要content
我的Cardify
ViewModifer 中的那一秒才能工作。
第二个内容行产生错误:
Cardify.Content(又名_ViewModifier_Content)类型的值没有成员foregroundColor
注释掉 .foregroundColor() 会产生错误:Cardify.Content (aka._ViewModifier_Content) 类型的值没有成员笔划
以防万一这很重要,以下代码是ViewModifier中getShape()
的源代码。content
Cardify
Diamond() 和 Squiggle() 是符合 Shape 协议的结构,在这些结构中正确地从 `func path(in rect: CGRect) -> Path 返回一个路径。
我尝试使用以下内容向下转换第二个内容行:
(content as! Shape).blah blah blah
这会产生错误:
Protocol Shape 只能用作通用约束,因为它具有 Self 或关联的类型要求。
我也试过:
(content as! Path)
这不会产生任何编译时错误,但在执行时会失败并出现错误:
运行时遇到问题,请检查您的代码是否有围绕这一行的错误。(表示第二个内容行)。
我该怎么做才能让编译器知道这是什么类型的内容,这样 stroke() 和 foregroundColor() 才能工作?
swift - SwiftUI ERR:“参数'title'必须在参数'style'之前
我正在开发一个包含许多具有默认值的自定义参数的包。鉴于有这么多潜在的初始化程序,当您更改许多参数时,正确排序所有内容很快就会变得混乱。
我有一个两部分的问题:
- 有没有办法从初始化中删除订购要求?
- 如果没有 - 有没有更好的方法来构造这个包的自定义参数?其他开发人员有什么建议?
我考虑过使用视图修饰符,但不确定在给定这个包结构的情况下它的工作效率如何。
结构初始化和使用如下。
swiftui - 用于自定义视图的 SwiftUI ViewModifier
有没有办法创建修改器来更新@State private var
正在修改的视图中的 a?
我有一个自定义视图,它返回Text
带有“动态”背景颜色的 a 或Circle
带有“动态”前景色的 a。
我在我的应用程序周围的不同部分重复使用此视图。如您所见,我需要指定的唯一参数是theText
. 因此,创建此 ChildView 的可能方法如下:
到目前为止没有什么花哨的。现在,我需要创建(也许)一个修饰符等,以便在父视图中,如果我需要对该 ChildView 进行更多自定义,我可以将其值@State private var color
从其他颜色更改为其他颜色。.red
我正在努力实现的示例:
我知道我可以private
从中删除关键字var
并在构造函数中传递color
as 参数(例如:)ChildView(theText: "Hello World", color: .green)
,但我认为这不是解决此问题的方法,因为如果我需要对子视图进行更多自定义,我会最终得到一个非常大的构造函数。
那么,关于如何实现我正在寻找的任何想法?希望我自己解释一下:)谢谢!!!
swift - Swift 编译器错误:“类型‘水印’不符合协议‘ViewModifier’”
我想添加一个 ViewModifier,如 Paul Hudson 的以下教程中所述(https://www.hackingwithswift.com/books/ios-swiftui/custom-modifiers)。我的 ViewModifier 是:
但我收到以下错误:
我试图在另一个项目中重现它,但它只是按预期工作。我已经尝试清理构建文件夹,删除派生数据,重新启动 Xcode,重新启动 Mac。
关于如何解决这个问题的任何想法?
swift - SwiftUI:自己的 ViewModifier 不刷新视图
在我的项目中,我有两个颜色选择器可以改变背景颜色和字体颜色。
工作表,我在其中更改颜色:
ContentView,应在其中显示更改:
我也有自己的 ViewModifer,它可以更改导航栏的背景颜色和字体颜色。
问题是“正常”背景和字体颜色发生了变化,但导航栏中没有。我认为问题在于我自己的导航栏 ViewModifier 不会重新加载视图。我将颜色保存在 UserDefaults 中;当我再次启动应用程序时,更改会显示在导航栏中。