SwiftUIX attempts to fill the gaps of the still nascent SwiftUI framework, providing an extensive suite of components, extensions and utilities to complement the standard library. This project is by far the most complete port of missing UIKit/AppKit functionality, striving to deliver it in the most Apple-like fashion possible.
The goal of this project is to complement the SwiftUI standard library, offering hundreds of extensions and views that empower you, the developer, to build applications with the ease promised by the revolution that is SwiftUI.
The preferred way of installing SwiftUIX is via the Swift Package Manager.
Xcode 11 integrates with libSwiftPM to provide support for iOS, watchOS, macOS and tvOS platforms.
https://github.com/SwiftUIX/SwiftUIX
) and click Next.master
).All documentation is available via the repository wiki.
While the project itself is stable and heavily being used in production, its documentation is work-in-progress. Contributions are encouraged and welcomed.
UIKit | SwiftUI | SwiftUIX |
---|---|---|
LPLinkView |
- | LinkPresentationView |
UIActivityIndicatorView |
- | ActivityIndicator |
UIActivityViewController |
- | AppActivityView |
UIBlurEffect |
- | BlurEffectView |
UICollectionView |
- | CollectionView |
UIDeviceOrientation |
- | DeviceLayoutOrientation |
UIImagePickerController |
- | ImagePicker |
UIPageViewController |
- | PaginationView |
UIScreen |
- | Screen |
UISearchBar |
- | SearchBar |
UIScrollView |
ScrollView |
CocoaScrollView |
UISwipeGestureRecognizer |
- | SwipeGestureOverlay |
UITableView |
List |
CocoaList |
UITextField |
TextField |
CocoaTextField |
UIModalPresentationStyle |
- | ModalPresentationStyle |
UIViewControllerTransitioningDelegate |
- | UIHostingControllerTransitioningDelegate |
UIVisualEffectView |
- | VisualEffectView |
UIWindow |
- | WindowOverlay |
ActivityIndicator
ActivityIndicator()
.animated(true)
.style(.large)
AppActivityView
- a SwiftUI port for UIActivityViewController
.
AppActivityView(activityItems: [...])
.excludeActivityTypes([...])
.onCancel { }
.onComplete { result in
foo(result)
}
View/visible(_:)
- Sets a view's visibility.TryButton
- A button capable of performing throwing functions.flip3D(_:axis:reverse:)
- Flips this view.RectangleCorner
- A corner of a Rectangle.ZeroSizeView
- A zero-size view for when EmptyView
just doesn't work.Keyboard
- An object representing the keyboard.View/padding(.keyboard)
- Pads this view with the active system height of the keyboard.LinkPresentationView
LinkPresentationView(url: url)
.frame(height: 192)
View/navigationBarColor(_:)
- Configures the color of the navigation bar for this view.View/navigationBarTranslucent(_:)
- Configures the translucency of the navigation bar for this view.View/navigationBarTransparent(_:)
- Configures the transparency of the navigation bar for this view.PaginationView
PaginationView(axis: .horizontal) {
ForEach(0..<10, id: \.hashValue) { index in
Text(String(index))
}
}
.currentPageIndex($...)
.pageIndicatorAlignment(...)
.pageIndicatorTintColor(...)
.currentPageIndicatorTintColor(...)
View/isScrollEnabled(_:)
- Adds a condition that controls whether users can scroll within this view. Works with:
CocoaList
CocoaScrollView
CollectionView
TextView
Does not work with SwiftUI's ScrollView
.
SearchBar
- A SwiftUI port for UISearchBar
.
struct ContentView: View {
@State var isEditing: Bool = false
@State var searchText: String = ""
var body: some View {
SearchBar("Search...", text: $searchText, isEditing: $isEditing)
.showsCancelButton(isEditing)
.onCancel { print("Canceled!") }
}
}
View/navigationSearchBar(_:)
- Sets the navigation search bar for this view.
Text("Hello, world!")
.navigationSearchBar {
SearchBar("Placeholder", text: $text)
}
View/navigationSearchBarHiddenWhenScrolling(_:)
- Hides the integrated search bar when scrolling any underlying content.
Screen
- A representation of the device's screen.UserInterfaceIdiom
- A SwiftUI port for UIUserInterfaceIdiom
.UserInterfaceOrientation
- A SwiftUI port for UserInterfaceOrientation
.ScrollIndicatorStyle
- A type that specifies the appearance and interaction of all scroll indicators within a view hierarchy
HiddenScrollViewIndicatorStyle
- A scroll indicator style that hides all scroll view indicators within a view hierarchy.View/statusItem(id:image:
) - Adds a status bar item configured to present a popover when clicked
Text("Hello, world!")
.statusItem(id: "foo", image: .system(.exclamationmark)) {
Text("Popover!")
.padding()
}
TextView
TextView("placeholder text", text: $text, onEditingChanged: { editing in
print(editing)
})
VisualEffectBlurView
- A blur effect view that expands to fill.
VisualEffectBlurView(blurStyle: .dark)
.edgesIgnoringSafeArea(.all)
View/windowOverlay(isKeyAndVisible:content:)
- Makes a window key and visible when a given condition is true.SwiftUIX welcomes contributions in the form of GitHub issues and pull-requests. Please refer the projects section before raising a bug or feature request, as it may already be under progress.
To create an Xcode project for SwiftUIX run bundle install; bundle exec fastlane generate_xcodeproj
.
To check the automated builds for SwiftUIX run bundle install; bundle exec fastlane build
.
SwiftUIX is licensed under the MIT License.
SwiftUIX is and will always be free and open. Maintaining SwiftUIX, however, is a time-consuming endeavour. If you're reliant on SwiftUIX for your app/project and would like to see it grow, consider contributing/donating as way to help.
SwiftUIX is a project of @vmanot.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。