我创建了一个照片库,每个单元格中都有包含许多单元格的列表。有几个UIImages。我添加了图像的 contextMenu ,但是当我长按每个图像时,将调用整个单元格而不是每个图像。谁能帮助我如何将 contextMenu 添加到列表中的每个项目
struct PhotoList : View {
var photoLibrary = PhotoLibrary
var body : some View {
GeometryReader { geometry in
List(self.photoLibrary, id: \.self) { imageSet in
HStack (alignment: .center) {
ForEach(imageSet, id: \.self) { image in
Image(uiImage: image)
.scaledToFill()
.cornerRadius(7)
.padding(3)
.frame(width: 150, height: 150, alignment: .center)
.contextMenu {
VStack {
Button(action: {}) {
HStack {
Text("Add to Today")
Image("plus.circle")
}
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
我的应用程序中已有一个明暗主题。我还支持iOS 13暗模式,问题是,即使选择了应用的亮或暗模式,更改iOS主题也会导致更改状态栏颜色,因此当ios暗模式打开时,状态栏在我的应用中的浅色主题。我试图通过此代码块来阻止它,但是在我的情况下它不起作用:
override var preferredStatusBarStyle: UIStatusBarStyle {
switch Appearance.theme {
case .dark:
return .lightContent
case .light:
if #available(iOS 13.0, *) {
return .darkContent
} else {
return .default
}
case .apple:
return .default
}
}
Run Code Online (Sandbox Code Playgroud)
我在他的分割视图控制器中添加了它,在每个控制器中也添加了它,但是没有任何变化。有谁知道如何解决?我ASLO有同样的问题UITabbar和UISegmentedControl
我应该以某种方式说,当选择我的应用中的明暗模式时,更改iOS主题应该会影响应用程序元素(状态栏,标签栏,UISegmentedControl)
非常感谢
在 WWDC19 季节的这个视频中,Modernizing Your UI for iOS 13,这个方法是创建一个上下文菜单,但我在使用它时出现错误:
@available(iOS 13.0, *)
func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
let actionProvider = (suggestedActions: [UIMenuElement])-> UIMenu? // in this line i got an error {
let editMenu = UIMenu(title: "Edit...", children: [
UIAction(title: "Copy") {},
UIAction(title: "Duplicate") {}
])
return UIMenu(children: [
UIAction(title: "Share") {},
editMenu,
UIAction(title: "Delete", style: .destructive) {}
])
}
return UIContextMenuConfiguration(identifier: "unique-ID" as NSCopying,
previewProvider: nil,
actionProvider: actionProvider)
}
Run Code Online (Sandbox Code Playgroud)
错误出现在行中 -> …