小编Dra*_*ner的帖子

上下文菜单破坏性操作,SwiftUI

我正在尝试在上下文菜单中添加删除操作,但它只是显示为默认的黑色。照片应用程序的删除操作也使用红色。我已经看到了一些网上的空间,这是不是目前所提供的功能contextMenu,但是,我也看到了它在第三方应用程序使用在野外这里。有谁知道如何做到这一点?

此外,看好苹果的文档contextMenu它说,他们已经过时了,除了MacOS的一切。我觉得奇怪的是,他们在引入它一年后就弃用了它。这是否被我应该使用的另一个组件所取代?

var body: some View {
        ScrollView {
            LazyVGrid(columns: columns, spacing: 20) {
                ForEach(photos) { photo in
                    Image(uiImage: UIImage(data: photo.imageData!)!)
                        .resizable()
                        .aspectRatio(1, contentMode: .fill)
                        .contextMenu(menuItems: {
                            Button(action: {
                                deletePhoto(selectedPhoto: photo)
                            }) {
                                Label("Remove", systemImage: "trash")
                            }
                        })
                }
            }
            .padding()
            .navigationBarTitle(Text("Albums"))
            .navigationBarItems(trailing:
                Button(action: {
                    self.showingImagePicker = true
                }) {
                    Image(systemName: "plus.circle.fill")
                }
            )
            .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
                ImagePicker(image: self.$inputImage)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui ios14

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

SwiftUI,如果导航链接不可见,如何使其工作?

当在 ForEach 之后在视图底部使用 NavigationLink 时,如果它不可见,它将无法工作。

我有一个按钮列表。如果按下按钮,则会将 Bool 设置为 true。该布尔值现在显示一个 NavigationLink,它会立即激活,因为传递的绑定设置为 true。但是,如果数组太长,链接将不起作用,因为一旦按下第一个按钮,链接就会消失。

这是我的代码:

import SwiftUI

struct TestLinkView: View {
    @State private var linkIsActive = false
    
    var body: some View {
        NavigationView {
            VStack {
                Button(action: {
                    linkIsActive = true
                }) {
                    Text("Press")
                }
                
                NavigationLink(destination: ListView(linkIsActive: $linkIsActive), isActive: $linkIsActive) {
                    Text("Navigation Link")
                }
            }
        }
    }
}


struct ListView: View {
    
    var nameArray = ["Name1","Name2","Name3","Name4","Name5","Name6","Name7","Name8","Name9","Name10","Name11","Name12","Name13","Name14","Name15","Name16","Name17","Name18","Name19","Name20" ]
    @State private var showLink: Bool = false
    @State private var selectedName: String = ""
    @Binding var …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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

由于两个存储的属性在 Swift 中不以任何方式交互,因此如何保持内存安全?

import UIKit

var robGlobal = Player(name: "Rob", health: 10, energy: 10)
var matt = Player(name: "Matt", health: 5, energy: 10)


struct Player {
    var name: String
    var health: Int
    var energy: Int
    
    static let maxHealth = 10
    mutating func restoreHealth() {
        health = Player.maxHealth
    }
    
    func balance(_ x: inout Int, _ y: inout Int) {
        let sum = x + y
        x = sum / 2
        y = sum - x
    }
    
}

class ViewController: UIViewController {
    
    
    override func viewDidLoad() …
Run Code Online (Sandbox Code Playgroud)

swift

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

TableView isSelected 场景的单元测试 Swift

我有一个简单的场景和 tableView。

我需要选择 3 个单元格,即使我滚动它也会保持这样。我可以选择 1、2 或 3 个单元格,但不能选择 4 个或更多。当我选择 4 个单元格时,什么都不会发生。如果有 3 个选定的单元格,并且我单击其中之一,则应取消选择我选择的单元格。到目前为止,一切都很好。感谢@vadian 的帮助,我可以按如下方式实现此目的。但我整天尝试为这种情况编写单元测试,但无法处理它。我决定向帮助社区寻求帮助,但仍然找不到方法。

问题是:如何针对这种情况用一种好的方法编写单元测试?

    /// My Model ///

struct Item: Codable {
    
    let name: String
    let image: String
   
    var isSelected = false
   
    enum CodingKeys: String, CodingKey {
        case name = "name"
        case image = "image"
      
    }
}

// MARK: - UITableViewDelegate
extension ViewController: UITableViewDelegate {

let items = [Item]() // fetched from network, there is item objects inside it.

// MARK: - UITableViewDataSource
extension ItemViewModel: UITableViewDataSource …
Run Code Online (Sandbox Code Playgroud)

unit-testing ios swift

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

标签 统计

swift ×4

ios ×3

swiftui ×2

ios14 ×1

unit-testing ×1