API--UITableViewCell API詳解

#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UIView.h>
#import <UIKit/UIStringDrawing.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UIGestureRecognizer.h>

NS_ASSUME_NONNULL_BEGIN

@class UIImage, UIColor, UILabel, UIImageView, UIButton, UITextField, UITableView, UILongPressGestureRecognizer;

//tabview的分割線的樣式  tabview才能設(shè)置不屬于cell的屬性
typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) {
    UITableViewCellSeparatorStyleNone,
    UITableViewCellSeparatorStyleSingleLine,
    UITableViewCellSeparatorStyleSingleLineEtched   
} __TVOS_PROHIBITED;

typedef NS_ENUM(NSInteger, UITableViewCellFocusStyle) {
    UITableViewCellFocusStyleDefault,
    UITableViewCellFocusStyleCustom
} NS_ENUM_AVAILABLE_IOS(9_0);

#define UITableViewCellStateEditingMask UITableViewCellStateShowingEditControlMask

NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewCell : UIView <NSCoding, UIGestureRecognizerDelegate>

//Cell的初始化方法驳遵,可以設(shè)置一個風格和標識符,風格的枚舉如下:  
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier NS_AVAILABLE_IOS(3_0) NS_DESIGNATED_INITIALIZER;

typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
    UITableViewCellStyleDefault,    // 默認風格,自帶標題和一個圖片視圖系吩,圖片在左
    UITableViewCellStyleValue1,     // 只有標題和副標題 副標題在右邊
    UITableViewCellStyleValue2,     // 只有標題和副標題,副標題在左邊標題的下邊
    UITableViewCellStyleSubtitle    // 自帶圖片視圖和主副標題科盛,主副標題都在左邊,副標題在下
};

//在storyBoard中取出時調(diào)用
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;

//圖片視圖榨崩,風格允許時才會創(chuàng)建
@property (nonatomic, readonly, strong, nullable) UIImageView *imageView NS_AVAILABLE_IOS(3_0);   

//標題標簽
@property (nonatomic, readonly, strong, nullable) UILabel *textLabel NS_AVAILABLE_IOS(3_0); 

//副標題標簽
@property (nonatomic, readonly, strong, nullable) UILabel *detailTextLabel NS_AVAILABLE_IOS(3_0); 

//如果需要添加簡單的View在cell上則需要添加在contentView上,
@property (nonatomic, readonly, strong) UIView *contentView;

//背景視圖
@property (nonatomic, strong, nullable) UIView *backgroundView;

//選中狀態(tài)下的背景視圖
@property (nonatomic, strong, nullable) UIView *selectedBackgroundView;

//多選選中時的背景視圖
@property (nonatomic, strong, nullable) UIView *multipleSelectionBackgroundView NS_AVAILABLE_IOS(5_0);
cell的標識符
@property (nonatomic, readonly, copy, nullable) NSString *reuseIdentifier;

//當被重用的cell將要顯示時,會調(diào)用這個方法恕出,這個方法最大的用武之地是當你自定義的cell上面有圖片時,如果產(chǎn)生了重用狈醉,圖片可能會錯亂(當圖片來自異步下載時及其明顯),這時我們可以重寫這個方法把內(nèi)容抹掉渣慕。
//必須調(diào)用super方法
- (void)prepareForReuse;  
                                                      
//cell被選中時的風格,枚舉如下:
@property (nonatomic) UITableViewCellSelectionStyle   selectionStyle;    

typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
    UITableViewCellSelectionStyleNone,//無
    UITableViewCellSelectionStyleBlue,//藍色
    UITableViewCellSelectionStyleGray,//灰色
    UITableViewCellSelectionStyleDefault//默認 為藍色
};

//設(shè)置cell是否選中狀態(tài) 狀態(tài):默認不選中强经,沒有動畫
@property (nonatomic, getter=isSelected) BOOL         selected;         

//設(shè)置cell是否高亮狀態(tài)
@property (nonatomic, getter=isHighlighted) BOOL      highlighted;   

//與上面的兩個屬性對應
- (void)setSelected:(BOOL)selected animated:(BOOL)animated;                    
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated;               

//獲取cell的編輯狀態(tài)信殊,枚舉如下
@property (nonatomic, readonly) UITableViewCellEditingStyle editingStyle;     
typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
    UITableViewCellEditingStyleNone,//無編輯
    UITableViewCellEditingStyleDelete,//刪除編輯
    UITableViewCellEditingStyleInsert//插入編輯
};

// 設(shè)置是否顯示cell自帶的自動排序控件
@property (nonatomic) BOOL                            showsReorderControl;        
//注意:要讓cell實現(xiàn)拖動排序的功能玲躯,除了上面設(shè)置為YES汞窗,還需實現(xiàn)代理中的如下方法:
/*-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
    return YES;
}
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
}*/

//設(shè)置編輯狀態(tài)下是否顯示縮進
@property (nonatomic) BOOL                            shouldIndentWhileEditing;  

//設(shè)置附件視圖的風格(cell最右側(cè)顯示的視圖) 枚舉如下:
@property (nonatomic) UITableViewCellAccessoryType    accessoryType;
     
typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
    UITableViewCellAccessoryNone,                   // 沒有視圖
    UITableViewCellAccessoryDisclosureIndicator,    // cell右側(cè)顯示一個灰色箭頭
    UITableViewCellAccessoryDetailDisclosureButton, // 顯示詳情符號和灰色箭頭
    UITableViewCellAccessoryCheckmark,              // cell右側(cè)顯示藍色對號
    UITableViewCellAccessoryDetailButton  // cell右側(cè)顯示一個詳情符號
};

//附件視圖   
@property (nonatomic, strong, nullable) UIView       *accessoryView;         

//cell編輯時的附件視圖風格
@property (nonatomic) UITableViewCellAccessoryType    editingAccessoryType;  

//cell編輯時的附件視圖    
@property (nonatomic, strong, nullable) UIView       *editingAccessoryView;      

//設(shè)置內(nèi)容區(qū)域的縮進級別,默認為0
@property (nonatomic) NSInteger                       indentationLevel;  

//設(shè)置每個級別的縮進寬度 默認為10.0
@property (nonatomic) CGFloat                         indentationWidth;  

//設(shè)置分割線的偏移量
@property (nonatomic) UIEdgeInsets                    separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED; 

//設(shè)置是否編輯狀態(tài)
@property (nonatomic, getter=isEditing) BOOL          editing;                    
- (void)setEditing:(BOOL)editing animated:(BOOL)animated;

//返回是否目前正在顯示刪除按鈕
@property(nonatomic, readonly) BOOL                   showingDeleteConfirmation; 

//設(shè)置焦點類型
@property (nonatomic) UITableViewCellFocusStyle       focusStyle NS_AVAILABLE_IOS(9_0) UI_APPEARANCE_SELECTOR;
typedef NS_ENUM(NSInteger, UITableViewCellFocusStyle) {
    UITableViewCellFocusStyleDefault,//當它變得集中時誓斥,單元格將以標準的系統(tǒng)定義的方式改變其外觀毕谴。這是默認的焦點樣式。
    UITableViewCellFocusStyleCustom//當它聚焦時舀武,單元格不會自動改變其外觀。指定此樣式可以為單元格創(chuàng)建自己的自定義外觀寻馏。
    //建議您通過子類化UITableViewCell并覆蓋didUpdateFocusInContext:withAnimationCoordinator:來創(chuàng)建自定義的單元格。
} NS_ENUM

//cell狀態(tài)將要轉(zhuǎn)換時調(diào)用的函數(shù)家乘,可以在子類中重寫
- (void)willTransitionToState:(UITableViewCellStateMask)state NS_AVAILABLE_IOS(3_0);

//cell狀態(tài)已經(jīng)轉(zhuǎn)換時調(diào)用的函數(shù)耀找,可以在子類中重寫双炕,狀態(tài)枚舉如下:
- (void)didTransitionToState:(UITableViewCellStateMask)state NS_AVAILABLE_IOS(3_0);
 typedef NS_OPTIONS(NSUInteger, UITableViewCellStateMask) {
    UITableViewCellStateDefaultMask                     = 0,//默認狀態(tài)
    UITableViewCellStateShowingEditControlMask          = 1 << 0,//編輯狀態(tài)
    UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1//確認刪除狀態(tài)
 };
@end

@interface UITableViewCell (UIDeprecated)

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(nullable NSString *)reuseIdentifier NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;

//注意:下面這些方法已經(jīng)全部在IOS3.0后被廢棄了丹拯,雖然還有效果融求,但是會被警告
//設(shè)置標題
@property (nonatomic, copy, nullable)   NSString *text NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;

//設(shè)置字體                       
@property (nonatomic, strong, nullable) UIFont   *font NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;  

//設(shè)置對其模式                    
@property (nonatomic) NSTextAlignment   textAlignment NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;   

//設(shè)置斷行模式           
@property (nonatomic) NSLineBreakMode   lineBreakMode NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;       
     
//設(shè)置字體顏色
@property (nonatomic, strong, nullable) UIColor  *textColor NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;     

//設(shè)置選中狀態(tài)下的字體顏色
@property (nonatomic, strong, nullable) UIColor  *selectedTextColor NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;     
     
//設(shè)置圖片
@property (nonatomic, strong, nullable) UIImage  *image NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;   

//設(shè)置選中狀態(tài)時的圖片    
@property (nonatomic, strong, nullable) UIImage  *selectedImage NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;            

// 設(shè)置編輯的時候是否隱藏附件視圖七芭,默認為yes
@property (nonatomic) BOOL              hidesAccessoryWhenEditing NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;  

// 使用-tableView:commitEditingStyle:forRowAtIndexPath:或者-tableView:accessoryButtonTappedForRowWithIndexPath: instead
@property (nonatomic, assign, nullable) id        target NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;                      
@property (nonatomic, nullable) SEL               editAction NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;              
@property (nonatomic, nullable) SEL               accessoryAction NS_DEPRECATED_IOS(2_0, 3_0) __TVOS_PROHIBITED;            

@end

NS_ASSUME_NONNULL_END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耙箍,一起剝皮案震驚了整個濱河市旨袒,隨后出現(xiàn)的幾起案子施无,更是在濱河造成了極大的恐慌敷搪,老刑警劉巖嫂便,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚龙,死亡現(xiàn)場離奇詭異脐瑰,居然都是意外死亡绝页,警方通過查閱死者的電腦和手機初肉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門妄壶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來例嘱,“玉大人奢浑,你說我怎么就攤上這事壤蚜≥撼螅” “怎么了萧豆?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卿嘲。 經(jīng)常有香客問我盒让,道長姨蝴,這世上最難降的妖魔是什么同木? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任洲尊,我火速辦了婚禮惊来,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厘擂。我一直安慰自己避凝,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布含潘。 她就那樣靜靜地躺著盆均,像睡著了一般饰抒。 火紅的嫁衣襯著肌膚如雪蔗草。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天鞋屈,我揣著相機與錄音,去河邊找鬼权旷。 笑死它浅,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的黔衡。 我是一名探鬼主播与纽,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼僚碎,長吁一口氣:“原來是場噩夢啊……” “哼矛双!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤速址,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渣触,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡养篓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萍丐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡态贤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柿冲,到底是詐尸還是另有隱情丽猬,我是刑警寧澤谬以,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站炕檩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舆吮,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一锋恬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晕窑,春花似錦、人聲如沸疾牲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽角虫。三九已至,卻和暖如春妇穴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曲梗。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工忘瓦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留境蜕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓拉队,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鳍咱,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容