CSStickyHeaderFlowLayout swift

点点圈 提交于 2019-12-08 06:26:09

问题


I'm trying to make parallax photo effect in my app using CSStickyHeaderFlowLayout - https://github.com/jamztang/CSStickyHeaderFlowLayout/ and Swift language.

I have installed necessary Pod's file, add #import "CSStickyHeaderFlowLayout.h" to my "appName"-Bridging-Header.h file, and implemented this method:

func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {

    var cell: UICollectionViewCell = UICollectionViewCell(frame: CGRectMake(0, 0, 400, 200));
    var imageView: UIImageView = UIImageView();
    var image: UIImage  = UIImage(named: "news2.jpg")!;
    imageView.image = image;
    cell.addSubview(imageView);
    return cell;

}

but now I have difficulties to translate this Obj-C code to Swift:

CSStickyHeaderFlowLayout *layout = (id)self.collectionViewLayout;
if ([layout isKindOfClass:[CSStickyHeaderFlowLayout class]]) {
    layout.parallaxHeaderReferenceSize = CGSizeMake(320, 200);
}

In my opinion after that step my effect should works. Am I right? Or I have missed something?

Thanks for help, m.af


回答1:


You should be able to do it like this in Swift

if let layout = self.collectionViewLayout as? CSStickyHeaderFlowLayout {
    layout.parallaxHeaderReferenceSize = CGSizeMake(320, 200)
}



回答2:


You could try this:

var layout = CSStickyHeaderFlowLayout()

if (layout.isKindOfClass(CSStickyHeaderFlowLayout.self)) {
    layout.parallaxHeaderReferenceSize = CGSizeMake(self.view.frame.size.width, 426)

    layout.parallaxHeaderMinimumReferenceSize = CGSizeMake(self.view.frame.size.width, 110)
    layout.itemSize = CGSizeMake(self.view.frame.size.width, layout.itemSize.height)
    layout.parallaxHeaderAlwaysOnTop = true

    // If we want to disable the sticky header effect
    layout.disableStickyHeaders = true
}


来源:https://stackoverflow.com/questions/27046624/csstickyheaderflowlayout-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!