Двухколоночный макет, как в приложении Пароли iOS 18?

Вопрос или проблема

Я заметил этот макет с двумя колонками в сторонних приложениях, а недавно и в приложении Пароли iOS 18, и мне интересно, есть ли «лучшие практики» для его воспроизведения в SwiftUI? Я бы использовал HStack или Grid, но не было бы это идеальным моментом для использования Layout?

Скриншот приложения Пароли iOS 18

Ответ или решение

Для создания двухколоночного макета, аналогичного приложению "Пароли" в iOS 18, в SwiftUI, рекомендуется использовать модульные компоненты, такие как LazyVGrid, который позволяет более эффективно управлять пространством и адаптировать макет под разные размеры экранов.

Шаги для создания двухколоночного макета в SwiftUI:

  1. Импортируйте необходимые модули:
    Убедитесь, что вы импортировали SwiftUI в ваш файл.

    import SwiftUI
  2. Настройте модель данных:
    Создайте структуру данных для ваших элементов. Например, если это элементы паролей, ваша структура может выглядеть следующим образом:

    struct PasswordItem: Identifiable {
       let id = UUID()
       let title: String
       let detail: String
    }
  3. Создайте образец данных:
    Объявите набор данных для вашего представления.

    let sampleData = [
       PasswordItem(title: "Почта", detail: "example@mail.com"),
       PasswordItem(title: "Фейсбук", detail: "facebook-password"),
       // Добавьте другие элементы...
    ]
  4. Используйте LazyVGrid для макета:
    Вы можете использовать LazyVGrid, чтобы создать две колонки для вашего интерфейса:

    struct PasswordGridView: View {
       let columns = [
           GridItem(.flexible()),
           GridItem(.flexible()),
       ]
    
       var body: some View {
           ScrollView {
               LazyVGrid(columns: columns, spacing: 20) {
                   ForEach(sampleData) { item in
                       VStack(alignment: .leading) {
                           Text(item.title)
                               .font(.headline)
                           Text(item.detail)
                               .font(.subheadline)
                               .foregroundColor(.gray)
                       }
                       .padding()
                       .background(Color.white)
                       .cornerRadius(8)
                       .shadow(radius: 2)
                   }
               }
               .padding()
           }
       }
    }
  5. Добавьте визуальные элементы:
    Вы можете настроить внешний вид ячеек, изменив стиль текста, фон и тени, как показано в коде выше.

  6. Интегрируйте в основной интерфейс:
    Добавьте PasswordGridView в ваш корневой вид.

    struct ContentView: View {
       var body: some View {
           PasswordGridView()
       }
    }

Рекомендации:

  • Адаптивность: Использование LazyVGrid позволяет вашему макету адаптироваться под разные размеры экранов, что важно для обеспечения хорошего пользовательского опыта на различных устройствах.
  • Методология "Design First": Прежде чем реализовывать, набросайте макет на бумаге или в графическом редакторе, чтобы понять, как элементы должны располагаться и взаимодействовать друг с другом.
  • Тестирование на устройствах: Убедитесь, что ваш макет работает хорошо на разных устройствах, тестируя его на iPhone и iPad разных размеров.

Эти шаги помогут вам воспроизвести функциональность и внешний вид двухколоночного макета, похожего на то, что используется в приложении "Пароли" iOS 18, с учетом принципов проектирования в SwiftUI.

Оцените материал
Добавить комментарий

Капча загружается...