UITableView 的橫向滑動實現

2021-07-29 13:15:02 字數 3795 閱讀 3013

為了實現橫向滑動的控制項,可以繼承類 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...