SwiftUI:打造 Apple Music 风格的界面呈现

想在你的 Swift 应用中实现 Apple Music 那样的酷炫界面? UIPresentationController 就是你的秘密武器!这个强大的类可以让你完全掌控视图控制器的呈现方式,打造个性化的用户体验。

在本教程中,我们将带你一步步模仿 Apple Music 的 UI 风格,包括:

  • 朦胧背景: 通过设置 containerView.backgroundColor 为半透明颜色,让用户在进行操作时仍然可以看到底层的内容。
  • 卡片式设计: 利用 presentationRect 属性裁剪 presentedViewController 的边缘,营造出类似卡片的视觉效果。
  • 灵动动画: 通过重写 presentationTransitionWillBegindismissalTransitionWillBegin 方法,你可以使用 UIView.animate(withDuration:) 等方法,为界面打开和关闭添加流畅自然的动画效果。
  • 丝滑手势: 想要像 Apple Music 那样通过拖动返回?没问题!添加手势识别器并处理相关事件,就能轻松实现。

通过学习和运用 UIPresentationController 的强大功能,你将能够为你的应用打造更具吸引力和沉浸感的用户体验!

zip
swift-自定义UIPresentationController模仿AppleMusicUI的行为.zip 预估大小:98个文件
folder
CardPresentationController-master 文件夹
file
.gitignore 1KB
folder
CardPresentationController.xcodeproj 文件夹
folder
xcshareddata 文件夹
folder
xcschemes 文件夹
file
CardPresentationController.xcscheme 3KB
folder
project.xcworkspace 文件夹
folder
xcshareddata 文件夹
file
IDEWorkspaceChecks.plist 238B
file
contents.xcworkspacedata 168B
file
project.pbxproj 15KB
folder
Example 文件夹
file
SecondController.swift 1010B
file
GridLayout.swift 864B
file
SecondController.storyboard 6KB
file
ContentController.storyboard 8KB
file
ViewController.swift 4KB
file
ContentController.swift 2KB
file
GridCell.xib 3KB
file
Info.plist 2KB
file
CustomContainerController.storyboard 3KB
file
PopupNavigationController.swift 346B
folder
Base.lproj 文件夹
file
LaunchScreen.storyboard 2KB
file
Main.storyboard 19KB
file
CustomContainerController.swift 1KB
file
GridCell.swift 910B
file
GridController.swift 2KB
file
AppDelegate.swift 831B
folder
Assets.xcassets 文件夹
folder
WonderWomanPoster.imageset 文件夹
file
WonderWomanPoster.jpg 199KB
file
Contents.json 314B
folder
AppIcon.appiconset 文件夹
file
Icon-App-40x40@3x.png 9KB
file
Icon-App-29x29@3x.png 5KB
file
Icon-App-40x40@1x.png 2KB
file
ItunesArtwork@2x.png 342KB
file
Icon-App-29x29@1x.png 1KB
file
Icon-App-20x20@1x.png 1KB
file
Icon-App-76x76@1x.png 4KB
file
Contents.json 2KB
file
Icon-App-60x60@2x.png 9KB
file
Icon-App-29x29@2x.png 3KB
file
Icon-App-40x40@2x.png 5KB
file
Icon-App-76x76@2x.png 13KB
file
Icon-App-20x20@2x.png 2KB
file
Icon-App-60x60@3x.png 18KB
file
Icon-App-20x20@3x.png 3KB
file
Icon-App-83.5x83.5@2x.png 16KB
file
Contents.json 62B
folder
CardPCDemo.xcodeproj 文件夹
folder
xcshareddata 文件夹
folder
xcschemes 文件夹
file
CardModal.xcscheme 3KB
folder
project.xcworkspace 文件夹
folder
xcshareddata 文件夹
file
IDEWorkspaceChecks.plist 238B
file
contents.xcworkspacedata 216B
file
project.pbxproj 24KB
folder
resources 文件夹
file
apple-music-iphone-xs.png 95KB
file
presentedVC.png 1.48MB
file
presentedNC.png 1.49MB
file
presentedNC-top.png 230KB
file
presentedVC-top.png 289KB
file
apple-music-iphone-xs.acorn 224KB
file
cardpc.png 410KB
file
CardPresentationController.mp4 5.12MB
file
LICENSE 1KB
folder
EmbeddedNCExample 文件夹
folder
EmbeddedNCExample.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
folder
xcshareddata 文件夹
file
IDEWorkspaceChecks.plist 238B
file
contents.xcworkspacedata 162B
file
project.pbxproj 19KB
folder
EmbeddedNCExample 文件夹
file
ContentController.storyboard 8KB
file
ViewController.swift 876B
file
ContentController.swift 2KB
file
Info.plist 1KB
folder
Base.lproj 文件夹
file
LaunchScreen.storyboard 2KB
file
Main.storyboard 2KB
file
AppDelegate.swift 434B
folder
Assets.xcassets 文件夹
folder
WonderWomanPoster.imageset 文件夹
file
WonderWomanPoster.jpg 199KB
file
Contents.json 314B
folder
AppIcon.appiconset 文件夹
file
Icon-App-40x40@3x.png 9KB
file
Icon-App-29x29@3x.png 5KB
file
Icon-App-40x40@1x.png 2KB
file
ItunesArtwork@2x.png 342KB
file
Icon-App-29x29@1x.png 1KB
file
Icon-App-20x20@1x.png 1KB
file
Icon-App-76x76@1x.png 4KB
file
Contents.json 2KB
file
Icon-App-60x60@2x.png 9KB
file
Icon-App-29x29@2x.png 3KB
file
Icon-App-40x40@2x.png 5KB
file
Icon-App-76x76@2x.png 13KB
file
Icon-App-20x20@2x.png 2KB
file
Icon-App-60x60@3x.png 18KB
file
Icon-App-20x20@3x.png 3KB
file
Icon-App-83.5x83.5@2x.png 16KB
file
Contents.json 62B
folder
Framework 文件夹
file
CardPresentationController.h 627B
file
Info.plist 726B
folder
Vendor 文件夹
folder
Controllers 文件夹
file
Embeddable.swift 2KB
file
StoryboardLoadable.swift 2KB
folder
Views 文件夹
file
ReusableView.swift 528B
file
NibLoadable.swift 1KB
file
DequeableView.swift 4KB
file
GradientView.swift 6KB
file
BaseGridLayout.swift 2KB
folder
CardPresentationController 文件夹
file
UIKit-CardPresentationExtensions.swift 3KB
file
CardConfiguration.swift 3KB
file
CardAnimator.swift 11KB
file
CardTransitionManager.swift 2KB
file
CardPresentationController.swift 8KB
file
README.md 8KB
file
CardPresentationController.podspec 810B
...
zip 文件大小:10.49MB