该框架允许你用视图数组填充轮播图。页面可以占据轮播图的整个宽度,或者可以稍微内嵌,以显示相邻页面的部分内容。可以通过平移、滑动或点击页面控件来导航轮播图。
Y—Carousel 根据 Apache 2.0 许可证 授权。
文档是从源代码注释自动生成的,并作为静态网站托管在 GitHub Pages 上:https://yml-org.github.io/ycarousel-ios/
import YCarousel
final class ViewController: UIViewController {
private let carouselView: CarouselView = {
let page1 = UIImageView(image: UIImage(named: "tutorial1"))
let page2 = UIImageView(image: UIImage(named: "tutorial2"))
let page3 = UIImageView(image: UIImage(named: "tutorial3"))
let carouselView = CarouselView(views: [page1, page2, page3])
return carouselView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(carouselView)
carouselView.constrainSize(width: 300, height: 300)
carouselView.constrainCenter()
}
}
import YCarousel
final class ViewController: UIViewController {
private let carouselView = CarouselView()
private let dataSource = CarouselViewProvider()
override func viewDidLoad() {
super.viewDidLoad()
carouselView.dataSource = dataSource
view.addSubview(carouselView)
carouselView.constrainSize(width: 300, height: 300)
carouselView.constrainCenter()
}
}
final class CarouselViewProvider {
private let imageNames = ["tutorial1", "tutorial2", "tutorial3"]
}
extension CarouselViewProvider: CarouselViewDataSource {
func carouselView(pageAt index: Int) -> UIView {
UIImageView(image: UIImage(named: imageNames[index]))
}
var numberOfPages: Int { imageNames.count }
}
import YCarousel
let page1 = UIImageView(image: UIImage(named: "tutorial1"))
let page2 = UIImageView(image: UIImage(named: "tutorial2"))
let page3 = UIImageView(image: UIImage(named: "tutorial3"))
let pages = [page1, page2, page3]
let carouselViewController = CarouselViewController(views: pages)
present(carouselViewController, animated: true, completion: nil)
import YCarousel
let childVC1 = OnboardingViewController()
let childVC2 = OnboardingViewController()
let childVC3 = OnboardingViewController()
let childVCs = [childVC1, childVC2, childVC3]
let carouselViewController = CarouselViewController(viewControllers: childVCs)
present(carouselViewController, animated: true, completion: nil)
Y—Carousel 依赖于我们的 Y—CoreUI 框架(也是开源的并根据 Apache 2.0 许可证授权)。
你可以通过将 Y—Carousel 添加为包依赖项来将其添加到 Xcode 项目中。
brew install swiftlint
sudo gem install jazzy
克隆 repo 并在 Xcode 中打开 Package.swift
。
我们采用 语义化版本控制。
{major}.{minor}.{patch}
例如
1.0.5
我们为我们的框架采用简化的分支策略。
main
main
分支出来main
。main
都会被标记为更新的版本号feature/{ticket-number}-{short-description}
bugfix/{ticket-number}-{short-description}
例如
feature/CM-44-button
bugfix/CM-236-textview-color
在提交拉取请求之前,你应该
swiftlint
并确认没有违规。jazzy
并确认您有 100% 的文档覆盖率。git rebase -i HEAD~{commit-count}
将您最近的 {commit-count} 个提交合并成功能块。main
)的 HEAD 自你创建分支以来已更新,请使用 git rebase main
来 rebase 你的分支。提交拉取请求时
合并拉取请求时
1.0.5
)你可以使用以下 Terminal 命令直接从源代码生成自己的本地文档集
jazzy
这将在 /docs
下生成一组文档。 默认配置在默认配置文件 .jazzy.yaml
文件中设置。
要查看其他文档选项,请键入
jazzy --help
每次将提交推送到 main
时,GitHub Action 会自动运行 Jazzy 以生成我们 GitHub 页面上的文档:https://yml-org.github.io/ycarousel-ios/