草庐IT

$SwiftUI

全部标签

swift - 将 ForEach 与绑定(bind)数组一起使用 (SwiftUI)

我的目标是从JSON动态生成表单。除了生成FormFieldView(基于TextField)并绑定(bind)到动态生成的View模型列表之外,我已经将所有内容放在一起。如果我将FormFieldView换成普通的TextView,它工作正常(见屏幕截图):ForEach(viewModel.viewModels){vminText(vm.placeholder)}对于ForEach(viewModel.viewModels){vminFormField(viewModel:$vm)}我试图将ConfigurableFormViewModel的viewModels属性设为@State

ios - 在 SwiftUI 中带有导航栏标题的 EXC_BAD_ACCESS

每当我在SwiftUIView中包含导航栏标题时,我的iPhone(但不是模拟器)就会崩溃。如果我取出导航栏标题,一切正常,但我需要那里的标题。这是我的代码:NavigationView{List{ForEach(self.viewModel.tasks){taskinTaskRow(task:task)}.onDelete(perform:self.viewModel.delete(indexSet:))}.listStyle(.grouped).edgesIgnoringSafeArea(.bottom).navigationBarTitle(Text("mainTitle"))/

ios - SwiftUI - 如何在图像上添加前景线性渐变

我无法找到任何有关如何在使用SwiftUI的图像的前景上进行线性渐变的相关文档。我试过这样做:Image("IconLoseWeight").frame(width:30.0,height:30.0).padding(.leading,17).foregroundColor(LinearGradient(gradient:Gradient(colors:[.white,.black]),startPoint:.top,endPoint:.bottom))实际上,上面显示的代码没有显示任何错误,但它用在顶级Stacks中毫无意义的警告破坏了代码(我认为这是Xcode或SwiftUI的错误

swift - 在 SwiftUI 中动态隐藏 View

我正在尝试有条件地隐藏DatePicker在SwiftUI中。但是,我对不匹配的类型有任何疑问:vardatePicker=DatePicker($datePickerDate)ifself.showDatePicker{datePicker=datePicker.hidden()}在这种情况下,datePicker是DatePicker输入但datePicker.hidden()是_ModifiedContent,_HiddenModifier>.所以我不能分配datePicker.hidden()至datePicker.我已经尝试过这种方法的变体,但似乎找不到可行的方法。有什么想法

SwiftUI:增加用户交互的点击/拖动区域

我在SwiftUI中构建了一个带有20x20拇指拖动器的自定义slider。一切正常,除了点击目标非常小,因为它只是20x20View。我正在寻找一种方法来增加它,使用户更容易与我的slider交互。有没有办法在SwiftUI中执行此操作?我尝试用Color.clear.overlay包裹我的拇指并将框架设置为60x60。如果颜色是纯色(如red),此方法有效,但使用clear时,点击目标似乎恢复为20x20的可见像素。您可以在这张gif上看到,即使在拇指以外的地方单击,我也可以拖动slider。但是,一旦我将颜色更改为clear,这个区域就不再接收交互。

ios - 在文本中添加无限行(SwiftUI)

只是弄清楚如何在Text中实现多行文本。似乎Text与UILabel(一行)具有相同的默认值,但我找不到满足此条件的任何函数。structContentView:View{varbody:someView{VStack(alignment:.leading,spacing:10){HStack{Text("AvocadoToast").font(.system(size:24))}//ThisTextdoescut,andIwonderhowIcanachievemultiplerowsText("Ingredients:Avocado,AlmondButter,Bread").fon

ios - 在 SwiftUI NavigationView 中呈现 UINavigationBar 的旧小标题

到现在为止,UINavigationItem的默认displayMode是小标题,在SwiftUI中它更改为默认大标题。是否可以使用旧的小标题样式? 最佳答案 可以通过将displayMode:.inline属性传递给navigationBarTitle()NavigationView{List{Text("Text")}.navigationBarTitle(Text("Title"),displayMode:.inline)} 关于ios-在SwiftUINavigationView

ios - 使用 SwiftUI 展平 TupleView

好的,SwiftUI本周发布了,所以我们都是菜鸟,但是...我有以下测试代码:varbody:someView{switchshape{case.oneCircle:returnZStack{Circle().fill(Color.red)}case.twoCircles:returnZStack{Circle().fill(Color.green)Circle().fill(Color.blue)}}}产生以下错误:函数声明了一个不透明的返回类型,但其主体中的返回语句没有匹配的底层类型发生这种情况是因为第一个ZStack是这种类型:ZStack>第二个是这种类型:ZStack,Sha

swift - 我如何知道 SwiftUI 按钮是否启用/禁用?

SwiftUI按钮没有isEnabled属性。我如何判断它是否已启用?在常规的UIKit中,我会简单地做ifbutton.isEnabeld==true{}else{}但没有SwiftUI等价物。 最佳答案 在一个View中,如果你想对.disabled(true)设置的状态使用react,你可以使用:@Environment(\.isEnabled)varisEnabled由于环境可以在View或ViewModifier中使用,因此它可以用于根据从外部设置的状态更改View的布局属性。不幸的是,ButtonStyle不能直接使用@

ios - SwiftUI 列表数据的可识别协议(protocol)扩展

我正在试验SwiftUI,在为我的一个列表实现数据模型时遇到了一个问题。我的计划是创建一个协议(protocol)CardProtocol作为我列表元素的数据协议(protocol),然后有一个CoreData协议(protocol)实现以及一个用于单元测试和Canvas使用的虚拟协议(protocol)。如果您在SwiftUIList中使用数据集合,则单个元素需要符合Identifiable协议(protocol)。代码如下所示:importSwiftUIimportCombinefinalclassCardsModel:BindableObject{varcards:[CardPr