草庐IT

$SwiftUI

全部标签

ios - 如何使用 SwiftUI 获得动态 View 列表

我可以像这样做一个静态列表List{View1()View2()}但是我如何从一个数组中创建一个动态的元素列表呢?我尝试了以下但出现错误:包含控制流语句的闭包不能与函数构建器“ViewBuilder”一起使用letelements:[Any]=[View1.self,View2.self]List{ForEach(0..有什么解决办法吗?我想要完成的是一个包含动态元素集的列表,这些元素不是静态输入的。 最佳答案 看起来答案与将我的View包装在AnyView中有关structContentView:View{varmyTypes:[

swift - 在 SwiftUI 中,控制事件在哪里,即 scrollViewDidScroll 检测列表数据的底部

在SwiftUI中,有谁知道控制事件(例如scrollViewDidScroll)在哪里以检测用户何时到达列表底部导致事件检索其他数据block?或者有没有新的方法来做到这一点?似乎UIRefreshControl()也不存在...... 最佳答案 SwiftUI缺少​​许多功能-目前似乎不可能。但这里有一个解决方法。TL;DRskipdirectlyatthebottomoftheanswer在比较ScrollView和List时的一个有趣发现:structContentView:View{varbody:someView{Scr

swift - 这个 SwiftUI 动画应该只会淡出。为什么会向右移动?

我很难理解为什么会这样。我将问题简化为最小表达。我有一个TextView,当它被移除时,它应该会淡出。添加.transition(.opacity)只是为了清楚起见。不需要它,因为它是默认值。然而,结果是除了淡出之外,TextView向右滑动。通过调整文本长度,我意识到在转换过程中,它的左边距需要与CHANGE按钮的左边距对齐。但是为什么?!反之,加回去时,工作正常,没有动静。只是一个很好的淡入效果。问题不仅出现在iOS上,也出现在macOS上。使用Xcode11beta2。importSwiftUIstructContentView:View{@Stateprivatevarshow

swift - 理解 SwiftUI 中的@Binding

我看了一些关于数据绑定(bind)的WWDC视频和Apple文档,根据我目前的理解,@State作为属性委托(delegate)将提供View和被注释属性之间的绑定(bind)连接,例如:@StatevarmyText:Stringvarbody:someView{VStack{TextField($myText,placeholder:Text("input"))Text(myText)}}这会将myText与我添加的文本字段的内容绑定(bind)(即一个更改另一个将跟进更新)但是,虽然我知道$myText指的是Binding的绑定(bind)类型,但我注意到Binding也是一个属

swift - SwiftUI 中 NavigationView 导航栏的自定义后退按钮

我想添加一个看起来像这样的自定义导航按钮:现在,我为此编写了一个自定义BackButtonView。将该View应用为前导导航栏项目时,通过执行以下操作:.navigationBarItems(leading:BackButton())...导航View如下所示:我试过以下修饰符:.navigationBarItem(title:Text(""),titleDisplayMode:.automatic,hidesBackButton:true)没有任何运气。问题我怎样才能...在导航栏中设置一个用作自定义后退按钮的View?或者:以编程方式将View弹出回其父View?采用这种方法时,

ios - SwiftUI:清除模态状态或重新初始化

我有一个SwiftUI模态,我想清除它的状态或重新初始化它。考虑到此模态可以打开其他可能具有某些状态的模态这一事实,最好重新初始化。这是一个简单的例子:importSwiftUIstructOtherView:View{@StatevarotherViewState:String=""varbody:someView{TextField($otherViewState,placeholder:Text("DemoTextInput"))}}structDemo:View{@StatevarshowModal:Bool=falsevarmodal:Modal{Modal(OtherVie

ios - SwiftUI:如何更改 NavigationView 的色调(背景色)?

我有一个带有列表的NavigationView。如何更改NavigationView的颜色? 最佳答案 没有直接的api(还)可以执行此操作,但您可以查看调试View层次结构,您会发现它是一个简单的UINavigationBar,所有旧的解决方案都可以在这里工作太(还)。structContentView:View{init(){UINavigationBar.appearance().backgroundColor=.whiteUINavigationBar.appearance().tintColor=.blackUINavig

swift - SwiftUI 中文本的自定义字体大小

我的View中有一个标签,我想使用中等大小的系统字体,大小为21磅。我创建了一个自定义扩展以重新使用创建的字体:extensionFont{staticvarprimaryButton:Font{returnFont.custom("SFUIDisplay-Light",size:21)}}但是,这没有任何效果。我将字符串更改为HelveticaNeue-UltraLight并且它确实有效,所以我猜测SFUIDisplay-Light只是不正确的字体名称。在字体书中,它说SFProText-Light,但这对我也不起作用。SwiftUI中SanFrancisco字体的正确字体名称是什么

swift - 无法在 SwiftUI 中使用自定义 View

对于我的SwiftUI应用程序,我创建了一个简单的TitleView,它具有设置的字体大小和文本颜色。Title声明如下:structTitle:View{varstring:Stringvarbody:someView{Text(string).font(.system(size:32)).color(Color.black)}}现在我的内容View正文中有以下文本对象:varbody:someView{VStack(alignment:.leading){Text("Welcome").font(.largeTitle).color(Color.black)Text("toSwif

ios - SwiftUI View - viewDidLoad()?

尝试在加载View后加载图像,驱动View的模型对象(请参阅下面的MovieDetail)有一个urlString。因为SwiftUIView元素没有生命周期方法(并且没有ViewController驱动事物),处理这个问题的最佳方法是什么?我遇到的主要问题是无论我尝试用哪种方式解决问题(绑定(bind)对象或使用状态变量),我的View直到它之后才具有urlString加载...//movieobjectstructMovie:Decodable,Identifiable{letid:Stringlettitle:Stringletyear:Stringlettype:Stringv