昨天用 Swift 重寫了之前的一個開源庫 PRSlideView, 今天整理好發佈到 GitHub 上了.
注: 沒有發佈到 CocoaPods 是因為沒有足夠的磁盤空間安裝新的編譯工具通過 CocoaPods 發佈前驗證. 你可以通過給我捐贈一台 最新的頂配 MacBook Pro 以解決這個問題. XD
This is the Swift language version of PRSlideView.
Slide view with gracefully written UIKit-like methods, delegate and data source protocol. Infinite scrolling supported.
Note: Auto layout not supported due to the special behaviours of UIScrollView
. Please use autoresizing mask instead or wrap it with a container view.
slideView.delegate = self
slideView.dataSource = self
slideView.scrollDirection = .Vertical
slideView.infiniteScrollingEnabled = true
slideView.registerClass(
PRAlbumPage.self,
identifier: PRAlbumPage.description()
)
import UIKit
public class PRAlbumPage: PRSlideViewPage {
public private(set) var coverImageView: UIImageView
required public init(frame: CGRect, identifier: String) {
self.coverImageView = UIImageView()
super.init(frame: frame, identifier: identifier)
let coverImageView = self.coverImageView
coverImageView.frame = self.bounds
coverImageView.autoresizingMask = (.FlexibleWidth | .FlexibleHeight)
coverImageView.contentMode = .ScaleAspectFit
self.addSubview(coverImageView)
}
required public init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// MARK: PRSlideViewDataSource
func numberOfPagesInSlideView(slideView: PRSlideView) -> Int {
return self.albumData.count
}
func slideView(slideView: PRSlideView, pageAtIndex index: Int) -> PRSlideViewPage {
let page: PRAlbumPage = slideView.dequeueReusablePageWithIdentifier(PRAlbumPage.description(), index: index) as PRAlbumPage
let imageName: String = self.albumData[index].stringByAppendingPathExtension("jpg")!
page.coverImageView.image = UIImage(named: imageName)
return page
}
// MARK: PRSlideViewDelegate
func slideView(slideView: PRSlideView, didScrollToPageAtIndex index: Int) {
self.titleLabel.text = self.albumData[index]
}
func slideView(slideView: PRSlideView, didClickPageAtIndex index: Int) {
let alertView: UIAlertView = UIAlertView(
title: "You clicked on an album",
message: "Title: \(self.albumData[index])",
delegate: nil,
cancelButtonTitle: "OK")
alertView.show()
}
All done! You can check out the code in the demo provided.
This code is distributed under the terms and conditions of the MIT license.
You can support me by:
:-)
1
Cee 2015-01-26 20:59:08 +08:00
正好看到前来膜拜(ノ ゚∀。)ノ
|
2
boom11235 2015-01-26 21:02:54 +08:00
膜拜
|
3
WildCat 2015-01-26 21:03:57 +08:00
膜拜
|
4
WildCat 2015-01-26 21:04:35 +08:00
膜拜(不能队形,楼上被吞了)
|
5
RIcter 2015-01-26 21:15:57 +08:00 via iPad
捐赠顶配的mbpr!
|
7
Livid MOD 正确的姿势是点击主题下面的“感谢”按钮 🙏
|
9
msxcms 2015-01-26 22:28:08 +08:00
にっこにっこにー
|
10
KotiyaSanae 2015-01-27 00:58:58 +08:00
菊苣菊苣菊
|
11
moliliang 2015-01-27 01:31:47 +08:00
好想看看效果啊。。
|
13
hkongm 2015-01-27 08:49:57 +08:00
已感谢。
|
14
chenggiant 2015-01-27 09:28:41 +08:00
已感谢。
|
15
jprovim 2015-01-27 10:04:32 +08:00
寫的質量還OK.
|
16
cralison 2015-01-27 10:17:54 +08:00
下来学习,谢谢:)
|
17
ciwonderful 2015-01-27 12:50:07 +08:00
已感谢。
|
18
tony1016 2015-01-27 13:18:41 +08:00
不错哦,鼓励一下
|
19
Thu 2015-01-31 13:40:02 +08:00
Git上给两张效果图就更好了,在下载前能有个总体的印象
|