草庐IT

swiftui-animation

全部标签

swift - 颜色 rgb 初始值设定项在 SwiftUI 中不作为背景工作

我正在尝试将按钮的背景颜色设置为某个自定义rgb值。我按如下方式创建按钮:Button(action:{print("tapped")}){Text("Let'sgo")}.background(Color.black)这很好用,而且按钮的背景实际上是黑色的。但是,当像这样初始化背景颜色时,它不起作用,根本没有背景颜色:.background(Color(red:242,green:242,blue:242))这是为什么? 最佳答案 看起来它要求的是百分比颜色,我能够让它工作Color(red:242/255,green:242/2

swift - 在 SwiftUI 中设置切换颜色

在遵循Apple的tutorialonuserinput之后,我实现了一个切换.目前,它看起来像这样:这是生成此UI的代码:NavigationView{List{Toggle(isOn:$showFavoritesOnly){Text("ShowFavoritesonly")}}}现在,我希望Toggle的on颜色为蓝色而不是绿色。我试过:Toggle(isOn:$showFavoritesOnly){Text("ShowFavoritesonly")}.accentColor(.blue).foregroundColor(.blue).background(Color.blue)这

ios - SwiftUI - SF 符号不呈现

我试图在我的代码中通过SF符号显示“加号”或“plus.app”符号,但右侧的预览没有显示任何内容。其他符号确实像“plus.circle”一样工作,是否有其他符号不起作用的原因?这是我的看法。varbody:someView{NavigationView{List(items){iteminText(item.description)}.navigationBarTitle(Text("GroceryItems")).navigationBarItems(leading:PresentationButton(Image(systemName:"plus").imageScale(.l

swift - 如何检测 SwiftUI 中的点击手势位置?

(对于SwiftUI,不是普通的UIKit)非常简单的示例代码,例如,在灰色背景上显示红色框:structContentView:View{@Statevarpoints:[CGPoint]=[CGPoint(x:0,y:0),CGPoint(x:50,y:50)]varbody:someView{returnZStack{Color.gray.tapAction{//TODO:addanentrytoself.pointsofthelocationofthetap}ForEach(self.points.identified(by:\.debugDescription)){point

swift - 如何在 SwiftUI 中添加自定义容器 View

我很好奇您是否可以在SwiftUI中创建自定义容器View。我知道您可以创建自定义内容View,例如Text(),但不确定您是否可以复制HStack{}的功能类似于:HGrid{Text("Loremipsum")Text("Loremipsum")}然后自定义容器View(又名HGrid)会在每个添加的组件之间添加Spacer()。本质上,例如,将其转译为:HStack{Text("Loremipsum")Spacer()Text("Loremipsum")} 最佳答案 SwiftUI使用ViewBuilder@functionB

swift - 在 SwiftUI 预览中绑定(bind) <Double>

(macOS10.15测试版和Xcode11测试版5)我正在学习的SwiftUI教程(https://www.raywenderlich.com/3715234-swiftui-getting-started#toc-anchor-005)包括以下View:structColorSliderView:View{@Bindingvarvalue:DoublelettextColor:Colorvarbody:someView{HStack{Text("0").foregroundColor(textColor)Slider(value:$value,in:0.0...1.0)Text("

swift - 如何在 SwiftUI 中访问 View 的修饰符?

假设我有一个View,其中的Image具有shadow属性:structContentView:View{varbody:someView{letmyImage=Image("turtlerock").shadow(radius:10)returnmyImage}}现在假设我想访问阴影半径的值。我以为我可以做到这一点:print(myImage.shadow.radius)但是,这会返回一个错误:Valueoftype'(Color,Length,Length,Length)->_ModifiedContent'(aka'(Color,CGFloat,CGFloat,CGFloat)-

ios - 我可以在 SwiftUI 中布局后获得 `View` 的位置吗?

有没有办法在布局后获取View的框架?我想在布局定位后绘制一条连接两个View的线:看来我需要类似measure的东西在React中。 最佳答案 使用GeometryReader获取每个View的框架,并使用框架确定两个View之间路径的点。structContentView:View{varbody:someView{GeometryReader{geometry->Textinletframe=geometry.frame(in:CoordinateSpace.local)returnText("\(frame.origin.x

swift - SwiftUI 中的多组件选择器 (UIPickerView)

我正在尝试将三组件选择器(UIPickerView)添加到SwiftUI应用程序(在传统的UIKit应用程序中,数据源将从numberOfComponents返回3>方法),但我无法在任何地方找到这方面的示例。我已经尝试添加一个由三个单组件选择器组成的HStack,但如果它们都是单个选择器的一部分,则视角会有所不同。 最佳答案 纯SwiftUI中的更新答案-在此示例中,数据的类型为String。在Xcode11.1上测试-可能不适用于以前的版本。structMultiPicker:View{typealiasLabel=String

ios - swift : Animate CALayer

在下面的代码中,当用户按住屏幕(longPressGestureRecognizer)时,我尝试将CALayer从屏幕左侧动画化到屏幕右侧。当用户抬起手指时,CALayer暂停。varl=CALayer()varholdGesture=UILongPressGestureRecognizer()letanimation=CABasicAnimation(keyPath:"bounds.size.width")overridefuncviewDidLoad(){super.viewDidLoad()setUpView()}funcsetUpView(){l.frame=CGRect(x: