Создание интерфейса с внутренней тенью, как показано на фотографии для Android и iOS (SwiftUI) - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь создать приложение и хочу создать представление с эффектом внутренней тени, как показано на рисунке. Я хотел сделать это в Android и iOS (SwiftUI).

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Ну, вы могли бы просто создать собственный фон с учетом этой конкретной тени, а затем просто всякий раз, когда пользователь нажимает кнопку, изменять фон кнопки, чтобы отразить теневой фон, и, так как он настраивается, вы можете делать форму по своему вкусу и глубина вашего вкуса тоже.

Вы бы обычно держали значки / кнопки плоскими, верно? и затем, когда нажата / выбрана / активна, просто измените фон на этот, чтобы показать акцент на его выборе.

Это почти аналогичный подход к методу в ответе выше.

0 голосов
/ 21 февраля 2020

На данный момент в SwiftUI можно делать только с использованием разных изображений для выбранных и невыбранных состояний.

Вот демонстрация подхода к этому

image1 image2

struct TestSelectedTabs: View {
    @State var selectedTab = 1
    var body: some View {
        TabView(selection: $selectedTab){
            Text("One")
                .tabItem {
                    Image(systemName: selectedTab == 0 ? "printer.fill" : "printer")
                    Text("Print")
                }.tag(0)
            Text("Two")
                .tabItem {
                    Image(systemName: selectedTab == 1 ? "tv.fill" : "tv")
                    Text("Show")
                }.tag(1)
        }
    }
}

, поэтому, имея два набора иконок (плоский и нажатый), вы можете добиться необходимого эффекта. Или, конечно, вы можете генерировать изображение с желаемым эффектом «нажатия на» в коде, скажем, используя CoreGraphics, Layers и т. Д. c. но, наконец, это должно быть просто изображение.

...