#ios #swift #swiftui
#iOS #swift #swiftui
Вопрос:
У меня есть цветное NavigationLink
контекстное меню. Его содержимое не читается при открытии контекстного меню. Я отказался от использования контекстного меню в непосредственном NavigationLink
подпросмотре, но это все та же проблема.
NavigationLink(destination: Text("View")) {
VStack(alignment: .leading) {
Text("Context Menu")
.font(.system(size: 24, weight: .bold))
}
.frame(minWidth: 0, maxWidth: .infinity, idealHeight: 70)
.foregroundColor(.white)
.padding()
.cornerRadius(3.0)
}
.background(Color.red)
.contextMenu {
Section {
Button(action: {
}) {
Label("Edit", systemImage: "square.and.pencil")
}
}
Section(header: Text("Secondary actions")) {
Button(action: {}) {
Label("Delete", systemImage: "trash")
}
}
}
NavigatoinLinks выглядят как в исходном состоянии.
При представлении контекстного меню. Проблема становится еще хуже, если я использую текст небольшого размера.
Я тестировал ios 14.2 как на симуляторе, так и на физическом устройстве.
Информация
Иерархия представлений.
ScrollView {
LazyVStack {
ForEach(data) { item in
// NavigationLink
}
}
}
Обновить
Это аналогичный проект с той же проблемой.
struct ContentView: View {
var body: some View {
NavigationView {
ScrollView {
LazyVStack {
ForEach(0..<10) { item in
NavigationLink(destination: Text("View")) {
VStack(alignment: .leading) {
Text("Context Menu")
.font(.system(size: 24, weight: .bold))
}
.frame(minWidth: 0, maxWidth: .infinity, idealHeight: 70)
.foregroundColor(.white)
.padding()
.cornerRadius(3.0)
}
.background(Color.red)
.contextMenu {
Section {
Button(action: {
}) {
Label("Edit", systemImage: "square.and.pencil")
}
}
Section(header: Text("Secondary actions")) {
Button(action: {}) {
Label("Delete", systemImage: "trash")
}
}
}
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Комментарии:
1. Не удается воспроизвести .. Xcode 12.2
2. Какая у вас версия iOS? У меня есть эта проблема в ios 14.2 как на симуляторе, так и на физическом устройстве.
3. Протестировано на симуляторе с 14.2. Если я нажимаю кнопку, вид не меняется. Остается прежним, и текст в порядке. Хорошо, только что увидел вашу иерархию. Я проверю еще раз. Возможно, из-за того, что лицо обернуто в ScrollView
4. Отлично работает с Xcode 12.1 / iOS 14.1. Не могли бы вы предоставить автономный воспроизводимый пример?
5. Я смог воспроизвести на симуляторах 14.2 и 14.0.1, но, что интересно, на Холсте этого не происходит. Я переместил красный фон на ярлык против
NavigationLink
, и он также размывается. Я думаю, что это связано с.contextMenu
размыванием всего, за исключениемNavigationLink
того, что он не видитlabel
как нечто, что он должен подчеркнуть, он видит это как все остальные «Представления», поэтому он размывает / затемняет его.