小编Dak*_*ata的帖子

@EnvironmentObject 和 @ObservedObject 有什么区别?

我一直在阅读 SwiftUI 中的属性包装器,我看到它们做得很好,但我真正不明白的一件事是@EnvironmentObject@ObservedObject之间的区别。

从我到目前为止所学到的,我看到@EnvironmentObject在我们的应用程序的各个地方都需要一个对象时使用,但我们不需要通过所有这些地方传递它。例如,如果我们有层次结构 A -> B -> C -> D 并且对象是在 A 处创建的,那么它会保存在环境中,以便我们可以将它直接从 A 传递到 D,如果 D 需要的话。

如果我们使用在 A 创建并需要传递给 D 的@ObservedObject,那么我们也需要通过 B 和 C。

但我仍然不知道如何决定使用哪一个。以下是我制作的 2 个示例项目:

struct ContentView2: View {
 
   var order = Order2()

   var body: some View {
      VStack {
           EditView2()
           DisplayView2()
       }
       .environmentObject(order)
   }
}
struct EditView2: View {
   @EnvironmentObject var user: Order2
 
   var body: some View {
       HStack{
       TextField("Fruit", text: $user.item)
       }
   }
}
struct …
Run Code Online (Sandbox Code Playgroud)

swiftui property-wrapper observedobject environmentobject

6
推荐指数
1
解决办法
1510
查看次数

如何将用户的当前位置与其他位置进行比较并在 UITable 视图中显示它们?

我正在 swift 开发一个应用程序,我必须将用户的当前位置与从 JSON 文件中获取的其他位置进行比较。然后我必须显示距离用户位置一定范围内的所有位置。我从 UISlider 中获取的这个范围。我的意思是当用户在滑块中选择 25km 时,应用程序必须确定当前用户的位置并显示该范围内的所有水果。

   import UIKit
   import SwiftyJSON
   import MapKit
   import CoreLocation


 class TableViewController: UITableViewController,CLLocationManagerDelegate {
 @IBOutlet weak var Bar: UIToolbar!


@IBOutlet weak var LabelTest: UILabel! // this is the slider value, I segue it from the previous viewcontroller
var manager = CLLocationManager()

struct Fruit {
    let name : String
    let location : CLLocation
    let imageURL : NSURL
    let description : String
}
var fruits = [Fruit]()


func parseFruits() {
    guard let url = NSBundle.mainBundle().URLForResource("cities", …
Run Code Online (Sandbox Code Playgroud)

json location compare ios swift

5
推荐指数
1
解决办法
1479
查看次数

SwiftUI 播放 Lottie 动画

这些天我一直在玩 Lottie 动画,但是我在如何从视图中阻止它们时遇到了一些麻烦。

这是我的 ContentView,我在其中播放动画。我有一个按钮可以实时显示布尔值:

struct ContentView: View {

@State var isShowing : Bool = true

var body: some View {
    ZStack {
         Color.green.opacity(0.3)
        VStack {
            VStack {
                LottieDosi(isShowing: .constant(isShowing)){Text("")}
                Button(action: {self.isShowing.toggle()}) {
                    
                    Text("Button is \(String(isShowing))")
                    .padding(10)
                    .background(Color.white)
                    .cornerRadius(40)
                }
            }.padding(.horizontal, 30)
        }
    }.edgesIgnoringSafeArea(.all)
}
} 
Run Code Online (Sandbox Code Playgroud)

这是我的 LottieView:

struct LottieView: UIViewRepresentable {

 @Binding var isAnimating: Bool
 @State   var name  : String

 var loopMode: LottieLoopMode = .loop
 var animationView = AnimationView()

 func makeUIView(context: UIViewRepresentableContext<LottieView>) -> UIView {
   let view = UIView() …
Run Code Online (Sandbox Code Playgroud)

animation swift lottie swiftui

3
推荐指数
1
解决办法
802
查看次数

Swift UITableView:如何从JSON加载数据

我是Swift的初学者,想为我的第一个应用程序提供一些帮助.我希望我能很好地解释它.我正在开发和应用程序,它从JSON文件加载信息.您是否有人知道如何将此信息填充到UI表视图单元格中.我开发了3个视图控制器,在第一个我有一个按钮,用户必须按下,第二个Tableview控制器将被打开.我已经看过如何填充它的教程,但似乎它不起作用.第三个是Table View Cells.let我告诉你:

class TableViewController: UITableViewController {
@IBOutlet weak var Bar: UIToolbar!
var TableData:Array< String > = Array < String >()
let ImageList = ["",""]
var TitleList = ["",""]
let DescriptionList = ["",""]
Run Code Online (Sandbox Code Playgroud)

我必须在单元格中显示图像,标题和描述.这是JSON文件:

 {
 “fruits” : [
 {
 “Name” : “Fruit1”,
 “Picture”:”http://www.starpropertiesindia.com/blog/wp-   content/uploads/2016/08/kochi1.jpg”,
“Description”:””,
},

  {
 “Name” : “Fruit2”,
 “Picture”:”http://www.starpropertiesindia.com/blog/wp-content/uploads/2016/08/kochi1.jpg”,
 “Description”:””,

},
Run Code Online (Sandbox Code Playgroud)

如果有人建议我如何继续,我将非常感激..

在新视图中准备segue:

@IBOutlet weak var CellDescription: UILabel!
@IBOutlet weak var CellImage: UIImageView!
@IBOutlet weak var CellTitle: UILabel!
override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}
Run Code Online (Sandbox Code Playgroud)

json uitableview swift

2
推荐指数
1
解决办法
2万
查看次数

传递变量时 SwiftUI 中的 .sheet 行为奇怪

我在 SwiftUI 中使用 .sheet 视图,并且在代码执行中观察到奇怪的行为。

我正在查看 SignInView2:

 struct SignInView2: View {

@Environment(\.presentationMode) var presentationMode
@State var invitationUrl = URL(string: "www")
@State private var showingSheet = false


var body: some View {
    VStack {
    Text("Share Screen")
        
        Button(action: {
            print("link: \(invitationUrl)") // Here I see the new value assigned from createLink() 
            self.showingSheet = true
        }) {
            Text("Share")
        }
        .sheet(isPresented: $showingSheet) {
        let invitationLink = invitationUrl?.absoluteString  // Paasing the old value (www)
        ActivityView(activityItems: [NSURL(string: invitationLink!)] as [Any], applicationActivities: nil)
    }
    }
    .onAppear() { …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

2
推荐指数
1
解决办法
303
查看次数

如何在照片库Swift中保存图片?

我是Swift初学者,刚刚在我的应用程序中完成了我的照相机功能.我现在遇到的问题是,当我从相机拍摄照片时,它不会保存到我的iPhone上的照片库中.一切都很完美,我可以拍照,但是当我查看照片时,似乎没有保存.我检查了类似的问题,但我没有找到正确的答案,我发现他们是添加按钮直接访问照片库的人,但我不需要这样的按钮.唯一的功能,我需要拍照,当用户点击选择照片将其保存在照片中.

到目前为止我用过这个:

class ViewController: UIViewController, UIImagePickerControllerDelegate,UINavigationControllerDelegate{



 let imagePicker: UIImagePickerController! = UIImagePickerController()

   override func viewDidLoad() {

    super.viewDidLoad()

    imagePicker.delegate = self

    let upSwipe = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes))

    upSwipe.direction = .up

    view.addGestureRecognizer(upSwipe)

}
Run Code Online (Sandbox Code Playgroud)

和功能:

func handleSwipes(sender:UISwipeGestureRecognizer) {

        if (sender.direction == .up){

            if ( UIImagePickerController.isSourceTypeAvailable(.camera)){



                if UIImagePickerController.availableCaptureModes(for: .rear) != nil {
                    imagePicker.allowsEditing = false
                    imagePicker.sourceType = .camera
                    imagePicker.cameraCaptureMode = .photo
                    present(imagePicker,animated: true, completion: {})
       }
            }
Run Code Online (Sandbox Code Playgroud)

以下是我在iPhone上的内容:我只想在用户选择使用照片时将照片本身保存在图库中,就像这样简单. 在此输入图像描述

camera save swift

1
推荐指数
1
解决办法
6673
查看次数