iOS開發學習之實現瀑布流

2021-07-05 09:37:50 字數 3166 閱讀 4264

您好、

相信您都知道第三方框架帶來的不僅是方便,還給我們在架構上帶來了不一樣的靈感。。。

當然,蝦公尺在學習當中是看著別人所寫的框架的。。。

所以今天蝦公尺 通過第三框架中搭建乙個簡單的瀑布流小作業。。。

下面我來說說我所學習的知識點吧。

對於乙個瀑布流,我們會想到uitableview來實現,不過它是整齊有規律的  一行一行的如同乙個**。不像瀑布流一樣 長長短短 參差不齊 。不過也有它的落差美。。。^-^ 哇哈哈 。。

下拉重新整理大致意圖:

用到我們程式的一些**也要跟著改,這也許是用別人東西的不好之處吧!!!

要用到別人的waterflowview  就必須遵守它的**協議和資料來源方法。

waterflowview是繼承uiscrollview實現的。

#import "jhshopsviewcontroller.h"

#import "jhshop.h"

#import "mjextension.h"

#import "hmwaterflowview.h"

#import "jhshopcell.h"

#import "mjrefresh.h"

@inte***ce jhshopsviewcontroller ()@property (nonatomic, strong) nsmutablearray *shops;

@property (nonatomic,weak) hmwaterflowview *waterflowview;

@end

@implementation jhshopsviewcontroller

-(nsmutablearray *)shops

return _shops;

}- (void)viewdidload

];// [waterflowview addfooterwithcallback:^];

[waterflowview addheaderwithtarget:self action:@selector(loadnewshops)];

[waterflowview addfooterwithtarget:self action:@selector(loadmoreshops)];

}-(void)didrotatefrominte***ceorientation:(uiinte***ceorientation)frominte***ceorientation

通過運用mjrefresh設計,我們可以呼叫下拉重新整理和上拉載入更多的實現方法。只要是你的控制項屬性是可以滾動就可以實現該方法的呼叫。。。

通過plist來建立乙個模型陣列。

- (void)loadnewshops

); dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(2.0 * nsec_per_sec)), dispatch_get_main_queue(), ^);

}- (void)loadmoreshops

); dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(2.0 * nsec_per_sec)), dispatch_get_main_queue(), ^);

}

接下來是實現資料來源和**方法:

#pragma mark - 資料來源方法

-(nsuinteger)numberofcellsinwaterflowview:(hmwaterflowview *)waterflowview

- (hmwaterflowviewcell *)waterflowview:(hmwaterflowview *)waterflowview cellatindex:(nsuinteger)index

-(nsuinteger)numberofcolumnsinwaterflowview:(hmwaterflowview *)waterflowview

else

}#pragma mark - **方法

-(cgfloat)waterflowview:(hmwaterflowview *)waterflowview heightatindex:(nsuinteger)index

@end

上面是主控制器的實現 。

不過以下我們需要對jhshopcell進行近一步的封裝,cell裡面設定了兩個屬性uiimageview和uilabel.通過layoutsubviews調整其位置。

並將傳進來的模型shop 在imageview和label上顯示。

//

// jhshopcell.m

// 瀑布流應用ofjh

//// created by cjj on 15-9-16.

//#import "jhshopcell.h"

#import "hmwaterflowview.h"

#import "jhshop.h"

#import "uiimageview+webcache.h"

@inte***ce jhshopcell()

@property (nonatomic, weak) uiimageview *imageview;

@property (nonatomic, weak) uilabel *pricelabel;

@end

@implementation jhshopcell

+ (instancetype)cellwithwaterflowview:(hmwaterflowview *)waterflowview

return cell;

}- (id)initwithframe:(cgrect)frame

return self;

}-(void)setshop:(jhshop *)shop

-(void)layoutsubviews

@end

蝦公尺****:

github:

iOS 實現 瀑布流介面

前陣子需要做乙個需求,在iphone上實現瀑布流效果。第一眼看到這個需求,我想到的兩種解決方案分別是 1.使用多個uitableview,然後控制它們同時滾動 2.使用乙個uiscrollview,然後參考uitableview的實現自己做乙個符合需求並且以後可以重用的控制項。我首先嘗試了第乙個方案...

iOS 瀑布流的實現方法

瀑布流 又稱瀑布式流式布局,是比較流行的一種頁面布局,視覺表現為參差不齊的多欄布局,可以參考 或者蘑菇街的客戶端。隨著頁面的滾動,這種布局會不斷的載入資料並附加到當前尾部。實現思路 ios上可以使用uiscrollview來實現,假設要展示三列,則每一列可以放乙個uiview,做為容器。載入到資料後...

iOS學習筆記 瀑布流封裝

最近學習了瀑布流布局,是用collectionview實現的。首先說說設計思路,用collectionview做出來的瀑布流是固定行數或者列數的。以現在主流固定列數為例,每個item就是固定寬,不固定高,同時每個item之間的間距是固定的,那麼每行的y值計算就需要通過前一行的最短的item來確定。既...