您好、
相信您都知道第三方框架帶來的不僅是方便,還給我們在架構上帶來了不一樣的靈感。。。
當然,蝦公尺在學習當中是看著別人所寫的框架的。。。
所以今天蝦公尺 通過第三框架中搭建乙個簡單的瀑布流小作業。。。
下面我來說說我所學習的知識點吧。
對於乙個瀑布流,我們會想到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來確定。既...