1、為了達到更好的效果我們不用uitableview,首先我們要通過xib自定義乙個和文字如圖:
2、自定義主檢視jrmainscrollview,通過協議**來實現功能,做法和uitableview類似,大家可以參考一下uitableview
首先:我們要定義資料源協議
//資料來源協議
@protocol jrmainscrolldatasource //獲取總的數量
- (nsinteger) numberofitems;
//獲取列的數量
- (nsinteger) numberofcolumsofrow;
//獲取item
- (uiview *) mainscrollview:(jrmainscrollview *)mainscrollview itematindex:(nsinteger) index;
@end
其次:我們要定義屬性協議
//屬性協議
@protocol jrmainscrolldelegate @optional
//獲取高度
- (cgfloat) heightforitematview:(jrmainscrollview *) mainscrollview;
//獲取寬度
- (cgfloat) widthforitematview:(jrmainscrollview *) mainscrollview;
//獲取間距
- (cgfloat) mainscrollview:(jrmainscrollview *)mainscrollview spaceforitemwithtype:(kjrmainscrollitemspace)type;
@end
注意獲取間距包括到左右的間距和上下的間距通過定義乙個列舉實現
typedef enum kjrmainscrollitemspace;
3、內部布局實現,計算出當前所有的frame,並且放入陣列在此期間,用的的屬性引數都需要從**來獲取,**如下
//載入子檢視
- (void)_loadsubviews
return no;
}-(void)layoutsubviews
return no;
}
5、操作緩衝池重複利用物件
/** 存放frame*/
@property(nonatomic,strong) nsmutablearray * array;
/** 存放當前顯示的物件*/
@property(nonatomic,strong) nsmutabledictionary * current;
/** 存放緩衝池物件*/
@property(nonatomic,strong) nsmutableset * pool;
/** * 獲取重複利用的物件
* * @param identy
* * @return
*/- (jrrectview *) dequeuereuseditemwithidenty:(nsstring *) identy
return view;
}
6、在主控制器載入檢視並實現**方法即可
//載入所有資料
- (void) _loadsubviews
#pragma mark - 資料來源方法
-(nsinteger)numberofitems
-(nsinteger) numberofcolumsofrow
-(uiview *) mainscrollview:(jrmainscrollview *)mainscrollview itematindex:(nsinteger)index
nsstring * imagename=[nsstring stringwithformat:@"%d",arc4random_uniform(20)+256];
uiimage *image=[uiimage imagenamed:imagename];
cell.image.image=image;
return cell;
}#pragma mark - **方法
//獲取高度
- (cgfloat) heightforitematview:(jrmainscrollview *) mainscrollview
//獲取寬度
- (cgfloat) widthforitematview:(jrmainscrollview *) mainscrollview
//獲取間距
- (cgfloat) mainscrollview:(jrmainscrollview *)mainscrollview spaceforitemwithtype:(kjrmainscrollitemspace)typeelse if (type==kjrmainscrollitemtopspace)
return 20;
}
,親自執行測試。
疑問諮詢或技術交流,**入官方qq群:
傑瑞教育
出處:
本文版權歸煙台傑瑞教育科技****
記憶體優化之封裝九宮格
1 為了達到更好的效果我們不用uitableview,首先我們要通過xib自定義乙個和文字如圖 2 自定義主檢視jrmainscrollview,通過協議 來實現功能,做法和uitableview類似,大家可以參考一下uitableview 首先 我們要定義資料源協議 資料來源協議 protocol...
九宮格布局
2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...
九宮格問題
include include stl 雙端佇列容器 include include pos.h using namespace std ofstream fout sudoku.txt deque d int lay deque d int checkout pos p,int n int sud...