你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> UITableViewCell

UITableViewCell

編輯:關於IOS

UITableViewCellStyle:

四種Cell類型。

UITableViewCellSeparatorStyle

分割線類型。(group三種,plain兩種)

UITableViewCellSelectionStyle

Cell選中的時刻的顏色。

UITableViewCellEditingStyle

編輯狀態下的模式。

UITableViewCellAccessoryType

Cell右側附加view的類型。

======================================================

UITableViewCellStateMask

Cell的狀態枚舉。


// Content. These properties provide direct access to the internal label and image views used by the table view cell. These should be used instead of the content properties below.

@property(nonatomic,readonly,retain) UIImageView *imageView NS_AVAILABLE_IOS(3_0); // default is nil. image view will be created if necessary.

直接訪問Cell中的imageview,默認是沒有創建的,在設置內容的時刻才會創建。


@property(nonatomic,readonly,retain) UILabel *textLabel NS_AVAILABLE_IOS(3_0); // default is nil. label will be created if necessary.

@property(nonatomic,readonly,retain) UILabel *detailTextLabel NS_AVAILABLE_IOS(3_0); // default is nil. label will be created if necessary (and the current style supports a detail label).

同上,需要看Cell類型。


// If you want to customize cells by simply adding additional views, you should add them to the content view so they will be positioned appropriately as the cell transitions into and out of editing mode.

@property(nonatomic,readonly,retain) UIView *contentView;

每個Cell都會存在一個唯一的contentView,定制cell的時刻我們應該將內容放到這個cell中。這樣,我們自定義的內容才能和其他內容一樣隨著editing狀態改變而改變。


// Default is nil for cells in UITableViewStylePlain, and non-nil for UITableViewStyleGrouped. The 'backgroundView' will be added as a subview behind all other views.

@property(nonatomic,retain) UIView *backgroundView;

背景view

@property(nonatomic,retain) UIView *selectedBackgroundView;

選中狀態下的背景view。


// If not nil, takes the place of the selectedBackgroundView when using multiple selection.

@property(nonatomic,retain) UIView *multipleSelectionBackgroundView NS_AVAILABLE_IOS(5_0);

多選情況下被選中時的背景view。


關於Cell的復用-----------------------------------------

@property(nonatomic,readonly,copy) NSString *reuseIdentifier; 返回標識符

- (void)prepareForReuse; // if the cell is reusable (has a reuse identifier), this is called just before the cell is returned from the table view method dequeueReusableCellWithIdentifier:. If you override, you MUST call super.

子類可以通過覆寫這個方法,那麼在Cell在復用之前調用這個方法做些操作。

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle; // default is UITableViewCellSelectionStyleBlue.

設置Cell選中狀態的顏色


@property(nonatomic,getter=isSelected) BOOL selected; // set selected state (title, image, background). default is NO. animated is NO

設置是否為選中狀態。


@property(nonatomic,getter=isHighlighted) BOOL highlighted; // set highlighted state (title, image, background). default is NO. animated is NO

設置是否為高亮,高亮就是處於選中狀態下的顯示效果。

http://www.ekeol.com/forum/9423


- (void)setSelected:(BOOL)selected animated:(BOOL)animated; // animate between regular and selected state

帶動畫設置選中狀態。


- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated; // animate between regular and highlighted state

帶動畫設置高亮狀態。


@property(nonatomic) BOOL shouldIndentWhileEditing; // default is YES. This is unrelated to the indentation level below.

編輯狀態下是否顯示縮進。(必須在

editingStyleForRowAtIndexPath代理方法中將返回值設為none,也就是說編輯狀態下不能有刪除增加等按鈕。

)你也許會覺得如果沒有這些按鈕,就算不設置這個屬性為No也是一樣的,事實上就算沒有添加刪除按鈕,cell前面也會有縮進。(這個方法與indentationLevel沒有聯系)


@property(nonatomic) UITableViewCellAccessoryType accessoryType; // default is UITableViewCellAccessoryNone. use to set standard type

設置右側附加視圖類型(系統類型)。


@property(nonatomic,retain) UIView *accessoryView; // if set, use custom view. ignore accessoryType. tracks if enabled can calls accessory action

自定義右側附加視圖。


@property(nonatomic) UITableViewCellAccessoryType editingAccessoryType; // default is UITableViewCellAccessoryNone. use to set standard type

編輯狀態下,右側附加視圖樣式。(可以與移動按鈕並存,會自動分開)

@property(nonatomic,retain) UIView *editingAccessoryView; // if set, use custom view. ignore editingAccessoryType. tracks if enabled can calls accessory action

編輯狀態下,右側的自定義附加視圖

@property(nonatomic) NSInteger indentationLevel; // adjust content indent. default is 0

@property(nonatomic) CGFloat indentationWidth; // width for each level. default is 10.0

這兩個屬性用來設置不同層次結構的內容的縮進大小。


@property(nonatomic,getter=isEditing) BOOL editing; // show appropriate edit controls (+/- & reorder). By default -setEditing: calls setEditing:animated: with NO for animated.

設置某一個Cell的編輯狀態,設置TableView會改變所有cell的狀態。但是設置這個值為YES只能使當前cell出現右邊的附加視圖,前面的編輯按鈕和後面的移動按鈕都無法出現。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated;

帶動畫的設置。

----------------------------

- (void)willTransitionToState:(UITableViewCellStateMask)state NS_AVAILABLE_IOS(3_0);

- (void)didTransitionToState:(UITableViewCellStateMask)state NS_AVAILABLE_IOS(3_0);

這兩個方法應該在子類中覆寫,當前Cell的狀態發生改變的時刻就會觸發這些方法,可以在這些方法中進行一些額外的操作。(例如:cell被點擊以後就會進入

UITableViewCellStateShowingDeleteConfirmationMask 狀態)

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved