#import
@inte***ce test19viewcell : uiview
// 索引
@property (nonatomic, assign)
nsuinteger
index;
// 文字
@property (nonatomic, copy)
nsstring
*text;
// 文字控制項
@property (nonatomic, retain)
uilabel
*textlabel;
// 名稱
@property (nonatomic, retain)
nsstring
*imagename;
// 控制項
@property (nonatomic, retain)
uiimageview
*imageview;
@end
#import "test19viewcell.h"
@implementation test19viewcell
@synthesize index =
_index;
@synthesize textlabel = _textlabel;
@synthesize text =
_text;
@synthesize imagename = _imagename;
@synthesize imageview = _imageview;
- (void)dealloc
- (id)init
return self; }
- (uilabel *)textlabel
return _textlabel; }
- (void)settext:(nsstring *)text
}- (uiimageview *)imageview
return _imageview; }
- (void)setimagename:(nsstring *)imagename}
@end
#import
@inte***ce
test19viewcontroller : uiviewcontroller
// 資料來源
@property (nonatomic, retain)
nsmutablearray
*datasource;
// 可見的cell集合
@property (nonatomic, retain)
nsmutableset
*visiblecells;
// 可迴圈的cell集合
@property (nonatomic, retain)
nsmutableset
*recycledcells;
// uiscrollview
@property (nonatomic, retain)
uiscrollview
*scrollview;
@end
#import "test19viewcontroller.h"
#import "test19viewcell.h"
#define kcellsize cgsizemake(self.view.frame.size.width, 44)
#define kcellseparatepadding
1.0
@inte***ce test19viewcontroller()
// 根據下標設定對應的frame、index、text
- (void)configurecell:(test19viewcell *)cell forindex:(nsuinteger)index;
// 判斷index對應的檢視是否在可見佇列中
- (bool)isvisiblecellforindex:(nsuinteger)index;
// 重用
- (id)dequeuereusablecell;
// 顯示文字
- (void)showcells;
@end
@implementation test19viewcontroller
@synthesize datasource = _datasource;
@synthesize visiblecells = _visiblecells;
@synthesize recycledcells = _recycledcells;
@synthesize scrollview = _scrollview;
- (void)dealloc
- (void)loadview
- (void)viewdidload
#pragma mark - private custom methods
// 根據下標設定對應的frame、index、text
- (void)configurecell:(test19viewcell *)cell forindex:(nsuinteger)index
// 判斷index對應的檢視是否在可見佇列中
- (bool)isvisiblecellforindex:(nsuinteger)index
}return isvisible;
}// 重用
- (id)dequeuereusablecell
return cell;
}// 用於測試實際建立cell的數量
static
int testcount = 0;
- (void)showcells }
// 可見檢視的集合減去迴圈佇列的集合
[_visiblecells minusset
:_recycledcells];
// 新增缺少的cell
for (int index = firstneededcellindex; index <= lastneededicellindex; index ++)
// 設定下標、frame、text
[self
configurecell:cell forindex:index];
// 將其新增到檢視中
[_scrollview
addsubview:cell];
// 加入到可見佇列中
[_visiblecells
addobject:cell];
} }}#pragma mark - uiscrollviewdelegate methods
- (void)scrollviewdidscroll:(uiscrollview *)scrollview
@end
UIScrollView分頁的實現
uiscrollview的經典例子就是safari的編輯模式了 uiscrollview可以垂直,水平滾動。如果屬性pageenabled yes,則設定其為分頁模式,那麼沒滾動一次就是一頁,垂直方向上的一頁就是uiscrollview的高度,水平方向就是其寬度。我們可以設定contentsize,...
UIScrollView分頁的實現
uiscrollview的經典例子就是safari的編輯模式了 uiscrollview可以垂直,水平滾動。如果屬性pageenabled yes,則設定其為分頁模式,那麼沒滾動一次就是一頁,垂直方向上的一頁就是uiscrollview的高度,水平方向就是其寬度。我們可以設定contentsize,...
IOS 利用UIScrollview實現滑動篩選
在ios中經常會用到滑動篩選的功能,如下 利用uiscrollview控制項可以實現上述功能,思路大致是 建立乙個uiview,寬度為螢幕寬度320,高度為以上圖的背景圖高度,在uiview上新增乙個 uiscrollview寬度為乙個型別的寬度,設定uiscrollview自動停止滾動,設定兩邊被...