Skip to content

Vl-VSV/DynamicSheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamicSheet

DynamicSheet — это SwiftUI-компонент для отображения модальных окон (sheet) с авто-подсчетом высты. Компонент автоматически адаптируется под содержимое

Реализация

Подробно про реализацию и её особенности можно прочить в этой статье

Требования

  • iOS 15+

Установка

Для интеграции DynamicSheet в ваш Xcode проект, сдедуйте шагам:

  • In Xcode, navigate to File -> Swift Packages -> Add Package Dependency.
  • Paste the repository's URL.

Особенности

  • Высота sheet автоматически подстраивается под содержимое.
  • При использовании ScrollView в sheet, он будет растягиваться на весь экран
  • Нужно использовать @Environment(\.dismissDynamicSheet) для закрытия sheet

Использование

Базовый пример

import SwiftUI

struct ContentView: View {
    @State private var showSheet = false

    var body: some View {
        Button("Show Sheet") {
            showSheet.toggle()
        }
        .dynamicSheet(showSheet: $showSheet) {
            Text("Hello, Sheet!")
        }
    }
}

С кнопкой закрытия

Особенностью является то, что вместо, dismiss, нужно использовать dismissDynamicSheet

.dynamicSheet(showSheet: $showSheet) {
	SheetWithDismissButton()
}
struct SheetWithDismissButton: View {
    @Environment(\.dismissDynamicSheet) private var dismiss

    var body: some View {
        VStack {
            Text("This is a sheet with a dismiss button")
                .font(.title)
                .padding()

            Button("Dismiss") {
                dismiss?() // Закрывает sheet
            }
        }
    }
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published