Swift - RxSwift的使用詳解40(UICollectionView的使用4:樣式修改)

四锻梳、相關樣式的修改

? ? ? ? 有時我們可能需要調(diào)整 collectionView 單元格尺寸衫画、間距睡榆,或者修改 section 頭尾視圖尺寸等等场航。雖然 RxSwift 沒有封裝相關的方法缠导,但我們?nèi)匀豢梢酝ㄟ^相關的代理方法來設置。

1溉痢,效果圖

(1)不管屏幕尺寸如何僻造,collectionView 每行總是固定顯示 4 個單元格憋他,即單元格的寬度隨屏幕尺寸的變化而變化。
(2)而單元格的高度為寬度的 1.5 倍髓削。

2竹挡,樣例代碼

import UIKit
import RxSwift
import RxCocoa
import RxDataSources
 
class ViewController: UIViewController {
     
    var collectionView:UICollectionView!
     
    let disposeBag = DisposeBag()
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //定義布局方式
        let flowLayout = UICollectionViewFlowLayout()
         
        //創(chuàng)建集合視圖
        self.collectionView = UICollectionView(frame: self.view.frame,
                                               collectionViewLayout: flowLayout)
        self.collectionView.backgroundColor = UIColor.white
         
        //創(chuàng)建一個重用的單元格
        self.collectionView.register(MyCollectionViewCell.self,
                                     forCellWithReuseIdentifier: "Cell")
        self.view.addSubview(self.collectionView!)
         
        //初始化數(shù)據(jù)
        let items = Observable.just([
            SectionModel(model: "", items: [
                "Swift",
                "PHP",
                "Python",
                "Java",
                "C++",
                "C#"
                ])
            ])
         
        //創(chuàng)建數(shù)據(jù)源
        let dataSource = RxCollectionViewSectionedReloadDataSource
            <SectionModel<String, String>>(
            configureCell: { (dataSource, collectionView, indexPath, element) in
                let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell",
                                                for: indexPath) as! MyCollectionViewCell
                cell.label.text = "\(element)"
                return cell}
        )
         
        //綁定單元格數(shù)據(jù)
        items
            .bind(to: collectionView.rx.items(dataSource: dataSource))
            .disposed(by: disposeBag)
         
        //設置代理
        collectionView.rx.setDelegate(self)
            .disposed(by: disposeBag)
    }
}
 
//collectionView代理實現(xiàn)
extension ViewController : UICollectionViewDelegateFlowLayout {
    //設置單元格尺寸
    func collectionView(_ collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                        sizeForItemAt indexPath: IndexPath) -> CGSize {
        let width = collectionView.bounds.width
        let cellWidth = (width - 30) / 4 //每行顯示4個單元格
        return CGSize(width: cellWidth, height: cellWidth * 1.5) //單元格寬度為高度1.5倍
    }
}
 
//自定義單元格
class MyCollectionViewCell: UICollectionViewCell {
     
    var label:UILabel!
     
    override init(frame: CGRect) {
        super.init(frame: frame)
         
        //背景設為橙色
        self.backgroundColor = UIColor.orange
         
        //創(chuàng)建文本標簽
        label = UILabel(frame: frame)
        label.textColor = UIColor.white
        label.textAlignment = .center
        self.contentView.addSubview(label)
    }
     
    override func layoutSubviews() {
        super.layoutSubviews()
        label.frame = bounds
    }
     
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

RxSwift使用詳解系列
原文出自:www.hangge.com轉載請保留原文鏈接

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市立膛,隨后出現(xiàn)的幾起案子揪罕,更是在濱河造成了極大的恐慌,老刑警劉巖宝泵,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件好啰,死亡現(xiàn)場離奇詭異,居然都是意外死亡儿奶,警方通過查閱死者的電腦和手機坎怪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廓握,“玉大人,你說我怎么就攤上這事嘁酿∠度” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵闹司,是天一觀的道長娱仔。 經(jīng)常有香客問我,道長游桩,這世上最難降的妖魔是什么牲迫? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮借卧,結果婚禮上盹憎,老公的妹妹穿的比我還像新娘。我一直安慰自己铐刘,他們只是感情好陪每,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镰吵,像睡著了一般檩禾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疤祭,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天盼产,我揣著相機與錄音,去河邊找鬼勺馆。 笑死戏售,一個胖子當著我的面吹牛侨核,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜈项,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼芹关,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了紧卒?” 一聲冷哼從身側響起侥衬,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跑芳,沒想到半個月后轴总,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡博个,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年怀樟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盆佣。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡往堡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出共耍,到底是詐尸還是另有隱情虑灰,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布痹兜,位于F島的核電站穆咐,受9級特大地震影響,放射性物質發(fā)生泄漏字旭。R本人自食惡果不足惜对湃,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遗淳。 院中可真熱鬧拍柒,春花似錦、人聲如沸屈暗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恐锦。三九已至往果,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間一铅,已是汗流浹背陕贮。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留潘飘,地道東北人肮之。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓掉缺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親戈擒。 傳聞我的和親對象是個殘疾皇子眶明,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容