UITableViewCell.h

//
//  UITableViewCell.h
//  UIKit
//
//  Copyright (c) 2005-2013, Apple Inc. All rights reserved.
//

#import 
#import 
#import 
#import 
#import 
#import 

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

typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
    UITableViewCellStyleDefault,
    UITableViewCellStyleValue1,
    UITableViewCellStyleValue2,
    UITableViewCellStyleSubtitle
};             // available in iPhone OS 3.0

typedef NS_ENUM(NSInteger, UITableViewCellSeparatorStyle) {
    UITableViewCellSeparatorStyleNone,              // 没有分割线
    UITableViewCellSeparatorStyleSingleLine,        // 有一条分割线
    UITableViewCellSeparatorStyleSingleLineEtched   // cell没有分割线,没有添加cell的行有分割线
};

typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
    // 选中样式
    UITableViewCellSelectionStyleNone,
    UITableViewCellSelectionStyleBlue,
    UITableViewCellSelectionStyleGray,
    UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)
};

typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
    // 编辑样式
    UITableViewCellEditingStyleNone,
    UITableViewCellEditingStyleDelete,
    UITableViewCellEditingStyleInsert
};

typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
    
    UITableViewCellAccessoryNone,                                       // 空白,没有东西
    UITableViewCellAccessoryDisclosureIndicator,                        // 只有一个箭头
    UITableViewCellAccessoryDetailDisclosureButton,                     // 有一个箭头和显示详情的圆圈i
    UITableViewCellAccessoryCheckmark,                                  // 有一个勾
    UITableViewCellAccessoryDetailButton NS_ENUM_AVAILABLE_IOS(7_0)     // 只有显示详情的圆圈i
};

typedef NS_OPTIONS(NSUInteger, UITableViewCellStateMask) {
    UITableViewCellStateDefaultMask                     = 0,
    UITableViewCellStateShowingEditControlMask          = 1 << 0,
    UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
};

#define UITableViewCellStateEditingMask UITableViewCellStateShowingEditControlMask

NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewCell : UIView 

// 为了优化性能,将已经不可见的cell放入缓存池,下次直接从缓存池取出来,就不用重新创建新对象,需要一个重用标识
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier NS_AVAILABLE_IOS(3_0);

@property (nonatomic, readonly, retain) UIImageView *imageView NS_AVAILABLE_IOS(3_0);   // 默认是空,如果需要可以创建
@property (nonatomic, readonly, retain) UILabel     *textLabel NS_AVAILABLE_IOS(3_0);   // 默认是空,如果需要可以创建
@property (nonatomic, readonly, retain) UILabel     *detailTextLabel NS_AVAILABLE_IOS(3_0); // 默认是空,如果需要可以创建 (并且当前的样式也适用于detailTextLabel).

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

// 在 UITableViewStylePlain样式下,默认还是空, 而在UITableViewStyleGrouped状态下不是空的. backgroundView会添加在所有子控件的最下面.
@property (nonatomic, retain) UIView                *backgroundView;
@property (nonatomic, retain) UIView                *selectedBackgroundView;    // 选中后的背景视图
@property (nonatomic, retain) UIView                *multipleSelectionBackgroundView NS_AVAILABLE_IOS(5_0);
@property (nonatomic, readonly, copy) NSString      *reuseIdentifier;
- (void)prepareForReuse;

@property (nonatomic) UITableViewCellSelectionStyle   selectionStyle;             // 选择样式,默认是蓝色的样式
@property (nonatomic, getter=isSelected) BOOL         selected;                   // 是否被选择的状态(title, image, background). 默认是 NO. 动画不可用(NO)
@property (nonatomic, getter=isHighlighted) BOOL      highlighted;                // 设置高亮状态(title, image, background).默认是 NO. 动画不可用(NO)
- (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, readonly) UITableViewCellEditingStyle editingStyle;         // 编辑样式
@property (nonatomic) BOOL                            showsReorderControl;        // 默认 NO
@property (nonatomic) BOOL                            shouldIndentWhileEditing;   // default is YES.  This is unrelated to the indentation level below.

@property (nonatomic) UITableViewCellAccessoryType    accessoryType;              // 右边的箭头使用这个方式
@property (nonatomic, retain) UIView                 *accessoryView;              // 通过这个属性来将右边的辅助视图改成开关什么的自定义视图
@property (nonatomic) UITableViewCellAccessoryType    editingAccessoryType;       // 编辑辅助样式
@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) UIEdgeInsets                    separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR; // allows customization of the separator frame

@property(nonatomic, getter=isEditing) BOOL           editing;
- (void)setEditing:(BOOL)editing animated:(BOOL)animated; // 设置可编辑和可显示动画

@property(nonatomic, readonly) BOOL                   showingDeleteConfirmation;  // 实时显示 Delete 按钮

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

@end

#pragma - mark 已经失效的方法
@interface UITableViewCell (UIDeprecated)

// 形状不可更改. 大小会随着内部table view的宽高来调整
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier NS_DEPRECATED_IOS(2_0, 3_0);

// Content properties.  These properties were deprecated in iPhone OS 3.0.  The textLabel and imageView properties above should be used instead.
// For selected attributes, set the highlighted attributes on the textLabel and imageView.
@property (nonatomic, copy)   NSString *text NS_DEPRECATED_IOS(2_0, 3_0);                        // 显示文本,默认是空 default is nil
@property (nonatomic, retain) UIFont   *font NS_DEPRECATED_IOS(2_0, 3_0);                        // 文本显示字体,默认是空,显示系统字体
@property (nonatomic) NSTextAlignment   textAlignment NS_DEPRECATED_IOS(2_0, 3_0);               // 文本对齐方式,默认左对齐
@property (nonatomic) NSLineBreakMode   lineBreakMode NS_DEPRECATED_IOS(2_0, 3_0);               // default is UILineBreakModeTailTruncation
@property (nonatomic, retain) UIColor  *textColor NS_DEPRECATED_IOS(2_0, 3_0);                   // default is nil (text draws black)
@property (nonatomic, retain) UIColor  *selectedTextColor NS_DEPRECATED_IOS(2_0, 3_0);           // default is nil (text draws white)

@property (nonatomic, retain) UIImage  *image NS_DEPRECATED_IOS(2_0, 3_0);                       // default is nil. appears on left next to title.
@property (nonatomic, retain) UIImage  *selectedImage NS_DEPRECATED_IOS(2_0, 3_0);               // default is nil

// Use the new editingAccessoryType and editingAccessoryView instead
@property (nonatomic) BOOL              hidesAccessoryWhenEditing NS_DEPRECATED_IOS(2_0, 3_0);   // default is YES

// Use the table view data source method -tableView:commitEditingStyle:forRowAtIndexPath: or the table view delegate method -tableView:accessoryButtonTappedForRowWithIndexPath: instead
@property (nonatomic, assign) id        target NS_DEPRECATED_IOS(2_0, 3_0);                      // target for insert/delete/accessory clicks. default is nil (i.e. go up responder chain). weak reference
@property (nonatomic) SEL               editAction NS_DEPRECATED_IOS(2_0, 3_0);                  // action to call on insert/delete call. set by UITableView
@property (nonatomic) SEL               accessoryAction NS_DEPRECATED_IOS(2_0, 3_0);             // action to call on accessory view clicked. set by UITableView

@end

你可能感兴趣的:(UITableViewCell.h)