為了實現橫向滑動的控制項,可以繼承類 uiscrollview 或類 uiview 自定義可以橫向滑動的控制項,這裡通過 uitableview 的旋轉,實現可以橫向滑動的控制項。
先說明與實現相關的幾個概念
自定義乙個 uiview 的子類 horizontaltableview ,在其中新增乙個 uitableview 類物件,初始化時,將**檢視逆時針方向旋轉90度,此時,其座標系的 x 座標軸正方向垂直向上, y 座標軸正方向水平向右,**中的子檢視的座標系與其一致,而後,在該自定義的子類中實現 uitableview 的**方法。
自定義乙個類 horizontaltableviewcell 繼承 uitableviewcell ,在初始化該子類時,將屬性 contentview 順時針方向旋轉90度,此時其座標系方向與 horizontaltableview 的父檢視的座標系一致(一般與螢幕一致)。
自定義乙個協議 horizontaltableviewdatasource 用於獲取使用者提供的 cell 個數及寬度等資訊。
完整測試**
//
// horizontaltableview.h
// test-horizontaltableview
//// created by han on 2017/3/22.
//#import
@class
horizontaltableviewcell;
@protocol
horizontaltableviewdatasource;
@inte***ce
horizontaltableview : uiview
@property (nonatomic, weak) id
delegate;
/**
the default width of columns,value is 50.0
if the delegate don't implement the method tableview:widthforcolumnatindex:
the value is used as the width of columns,you can change the default value.
*/@property (nonatomic, assign) cgfloat width;
- (id)dequeuereusablecellwithidentifier:(nsstring *)identifier;
- (void)selectcolumnatindex:(nsinteger)index animated:(bool)animated scrollposition:(uitableviewscrollposition)scrollposition;
- (void)reloaddata;
- (horizontaltableviewcell *)cellforcolumn:(nsinteger)column;
@end
@protocol
horizontaltableviewdatasource
@required
- (nsinteger)numberofcolumnsintableview:(horizontaltableview *)tableview;
- (horizontaltableviewcell *)tableview:(horizontaltableview *)tableview cellforcolumnatindex:(nsinteger)index;
@optional
- (cgfloat)tableview:(horizontaltableview *)tableview widthforcolumnatindex:(nsinteger)index;
- (void)tableview:(horizontaltableview *)tableview didselectcolumn:(nsinteger)index;
@end
@inte***ce
horizontaltableviewcell : uitableviewcell
@end
//
// horizontaltableview.m
// test-horizontaltableview
//// created by han on 2017/3/22.
//#import "horizontaltableview.h"
@inte***ce
horizontaltableview ()
@property (nonatomic, strong) uitableview *tableview;
@end
@implementation
horizontaltableview
#pragma mark - initial methods
- (instancetype)init
return
self;
}- (instancetype)initwithframe:(cgrect)frame
return
self;
}- (void)setframe:(cgrect)frame
#pragma mark - accessor methods
- (uitableview *)tableview
return _tableview;
}#pragma mark - inside methods
#pragma mark - inte***ce methods
- (id)dequeuereusablecellwithidentifier:(nsstring *)identifier
- (void)selectcolumnatindex:(nsinteger)index animated:(bool)animated scrollposition:(uitableviewscrollposition)scrollposition
- (void)reloaddata
- (horizontaltableviewcell *)cellforcolumn:(nsinteger)index
#pragma mark - uitableviewdelegate,uitableviewdatasource
- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
return columns;
}- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
return cell;
}- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath
return cellheight;
}@end
@implementation
horizontaltableviewcell
- (instancetype)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier
return
self;
}- (void)layoutsubviews
}}@end
ios實現UITableView左滑刪除 複製即用
開發專案時候需要用到tableview左滑刪除,就研究了一下,話不多說直接上 設cell可編輯 bool tableview uitableview tableview caneditrowatindexpath nsindexpath indexpath 設定刪除按鈕 uitableviewcel...
實現乙個橫向的UItableview
像這樣的tableview是怎樣實現的,能夠橫向滑動 從外表看來和uitableview實現的效果是一樣的,但是是橫向的。方法一 設定tableview屬性 tableview.transform cgaffinetransformmakerotation m pi 2 設定cell屬性 cell....
UITableView的詳細講解
1.uitableview的初始化 csharp view plain copy uitableview tableview uitableview alloc initwithframe cgrectmake 0,0,320,420 tableview setdelegate self table...