iOS-UIView方法屬性介紹

/** 動(dòng)畫的曲線枚舉 */
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
    UIViewAnimationCurveEaseInOut,  //!< 慢進(jìn)慢出(默認(rèn)值).
    UIViewAnimationCurveEaseIn,     //!< 慢進(jìn).
    UIViewAnimationCurveEaseOut,    //!< 慢出.
    UIViewAnimationCurveLinear,     //!< 勻速.
};
 
//!< UIView內(nèi)容填充模式.
typedef NS_ENUM(NSInteger, UIViewContentMode) {
    UIViewContentModeScaleToFill,       //!< 縮放內(nèi)容到合適比例大小.
    UIViewContentModeScaleAspectFit,    //!< 縮放內(nèi)容到合適的大小蹋辅,邊界多余部分透明.
    UIViewContentModeScaleAspectFill,   //!< 縮放內(nèi)容填充到指定大小舟奠,邊界多余的部分省略.
    UIViewContentModeRedraw,            //!< 重繪視圖邊界 (需調(diào)用 -setNeedsDisplay).
    UIViewContentModeCenter,            //!< 視圖保持等比縮放.
    UIViewContentModeTop,               //!< 視圖頂部對(duì)齊.
    UIViewContentModeBottom,            //!< 視圖底部對(duì)齊.
    UIViewContentModeLeft,              //!< 視圖左側(cè)對(duì)齊.
    UIViewContentModeRight,             //!< 視圖右側(cè)對(duì)齊.
    UIViewContentModeTopLeft,           //!< 視圖左上角對(duì)齊.
    UIViewContentModeTopRight,          //!< 視圖右上角對(duì)齊.
    UIViewContentModeBottomLeft,        //!< 視圖左下角對(duì)齊.
    UIViewContentModeBottomRight,       //!< 視圖右下角對(duì)齊.
};
 
/** UIView動(dòng)畫過渡效果 */
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
    UIViewAnimationTransitionNone,          //!< 無效果.
    UIViewAnimationTransitionFlipFromLeft,  //!< 沿視圖垂直中心軸左到右移動(dòng).
    UIViewAnimationTransitionFlipFromRight, //!< 沿視圖垂直中心軸右到左移動(dòng).
    UIViewAnimationTransitionCurlUp,        //!< 由底部向上卷起.
    UIViewAnimationTransitionCurlDown,      //!< 由頂部向下展開.
};
 
/** 自動(dòng)調(diào)整大小方式 */
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,     //!< 不自動(dòng)調(diào)整.
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,//!< 自動(dòng)調(diào)整與superView左邊的距離,保證與superView右邊的距離不變.
    UIViewAutoresizingFlexibleWidth        = 1 << 1,//!< 自動(dòng)調(diào)整自己的寬度晋渺,保證與superView左邊和右邊的距離不變.
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,//!< 自動(dòng)調(diào)整與superView的右邊距離仔蝌,保證與superView左邊的距離不變.
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,//!< 自動(dòng)調(diào)整與superView頂部的距離,保證與superView底部的距離不變.
    UIViewAutoresizingFlexibleHeight       = 1 << 4,//!< 自動(dòng)調(diào)整自己的高度,保證與superView頂部和底部的距離不變.
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5 //!< 自動(dòng)調(diào)整與superView底部的距離挡育,也就是說,與superView頂部的距離不變.
};
 
/** UIView動(dòng)畫選項(xiàng) */
typedef NS_OPTIONS(NSUInteger, UIViewAnimationOptions) {
    UIViewAnimationOptionLayoutSubviews            = 1 <<  0, //!< 動(dòng)畫過程中保證子視圖跟隨運(yùn)動(dòng).
    UIViewAnimationOptionAllowUserInteraction      = 1 <<  1, //!< 動(dòng)畫過程中允許用戶交互.
    UIViewAnimationOptionBeginFromCurrentState     = 1 <<  2, //!< 所有視圖從當(dāng)前狀態(tài)開始運(yùn)行.
    UIViewAnimationOptionRepeat                    = 1 <<  3, //!< 重復(fù)運(yùn)行動(dòng)畫.
    UIViewAnimationOptionAutoreverse               = 1 <<  4, //!< 動(dòng)畫運(yùn)行到結(jié)束點(diǎn)后仍然以動(dòng)畫方式回到初始點(diǎn).
    UIViewAnimationOptionOverrideInheritedDuration = 1 <<  5, //!< 忽略嵌套動(dòng)畫時(shí)間設(shè)置.
    UIViewAnimationOptionOverrideInheritedCurve    = 1 <<  6, //!< 忽略嵌套動(dòng)畫速度設(shè)置.
    UIViewAnimationOptionAllowAnimatedContent      = 1 <<  7, //!< 動(dòng)畫過程中重繪視圖(注意僅僅適用于轉(zhuǎn)場(chǎng)動(dòng)畫).
    UIViewAnimationOptionShowHideTransitionViews   = 1 <<  8, //!< 視圖切換時(shí)直接隱藏舊視圖畏线、顯示新視圖静盅,而不是將舊視圖從父視圖移除(僅僅適用于轉(zhuǎn)場(chǎng)動(dòng)畫).
    UIViewAnimationOptionOverrideInheritedOptions  = 1 <<  9, //!< 不繼承父動(dòng)畫設(shè)置或動(dòng)畫類型.
    
    UIViewAnimationOptionCurveEaseInOut            = 0 << 16, //!< 動(dòng)畫先緩慢,然后逐漸加速.
    UIViewAnimationOptionCurveEaseIn               = 1 << 16, //!< 動(dòng)畫逐漸變慢.
    UIViewAnimationOptionCurveEaseOut              = 2 << 16, //!< 動(dòng)畫逐漸加速.
    UIViewAnimationOptionCurveLinear               = 3 << 16, //!< 動(dòng)畫勻速執(zhí)行,默認(rèn)值.
    
    UIViewAnimationOptionTransitionNone            = 0 << 20, //!< 沒有轉(zhuǎn)場(chǎng)動(dòng)畫效果.
    UIViewAnimationOptionTransitionFlipFromLeft    = 1 << 20, //!< 從左側(cè)翻轉(zhuǎn)效果.
    UIViewAnimationOptionTransitionFlipFromRight   = 2 << 20, //!< 從右側(cè)翻轉(zhuǎn)效果.
    UIViewAnimationOptionTransitionCurlUp          = 3 << 20, //!< 向后翻頁(yè)的動(dòng)畫過渡效果.
    UIViewAnimationOptionTransitionCurlDown        = 4 << 20, //!< 向前翻頁(yè)的動(dòng)畫過渡效果.
    UIViewAnimationOptionTransitionCrossDissolve   = 5 << 20, //!< 舊視圖溶解消失顯示下一個(gè)新視圖的效果.
    UIViewAnimationOptionTransitionFlipFromTop     = 6 << 20, //!< 從上方翻轉(zhuǎn)效果.
    UIViewAnimationOptionTransitionFlipFromBottom  = 7 << 20, //!< 從底部翻轉(zhuǎn)效果.
    
    UIViewAnimationOptionPreferredFramesPerSecondDefault     = 0 << 24, //!< 默認(rèn)的幀每秒.
    UIViewAnimationOptionPreferredFramesPerSecond60          = 3 << 24, //!< 60幀每秒的幀速率.
    UIViewAnimationOptionPreferredFramesPerSecond30          = 7 << 24, //!< 30幀每秒的幀速率.
    
} NS_ENUM_AVAILABLE_IOS(4_0);
 
typedef NS_OPTIONS(NSUInteger, UIViewKeyframeAnimationOptions) {
    UIViewKeyframeAnimationOptionLayoutSubviews            = UIViewAnimationOptionLayoutSubviews, //!< 動(dòng)畫過程中保證子視圖跟隨運(yùn)動(dòng).
    UIViewKeyframeAnimationOptionAllowUserInteraction      = UIViewAnimationOptionAllowUserInteraction, //!< 動(dòng)畫過程中允許用戶交互.
    UIViewKeyframeAnimationOptionBeginFromCurrentState     = UIViewAnimationOptionBeginFromCurrentState, //!< 所有視圖從當(dāng)前狀態(tài)開始運(yùn)行.
    UIViewKeyframeAnimationOptionRepeat                    = UIViewAnimationOptionRepeat, //!< 重復(fù)運(yùn)行動(dòng)畫.
    UIViewKeyframeAnimationOptionAutoreverse               = UIViewAnimationOptionAutoreverse, //!< 動(dòng)畫運(yùn)行到結(jié)束點(diǎn)后仍然以動(dòng)畫方式回到初始點(diǎn).
    UIViewKeyframeAnimationOptionOverrideInheritedDuration = UIViewAnimationOptionOverrideInheritedDuration, //!< 忽略嵌套動(dòng)畫時(shí)間設(shè)置.
    UIViewKeyframeAnimationOptionOverrideInheritedOptions  = UIViewAnimationOptionOverrideInheritedOptions, //!< 不繼承父動(dòng)畫設(shè)置或動(dòng)畫類型.
    
    UIViewKeyframeAnimationOptionCalculationModeLinear     = 0 << 10, //!< 連續(xù)運(yùn)算模式, 默認(rèn).
    UIViewKeyframeAnimationOptionCalculationModeDiscrete   = 1 << 10, //!< 離散運(yùn)算模式.
    UIViewKeyframeAnimationOptionCalculationModePaced      = 2 << 10, //!< 均勻執(zhí)行運(yùn)算模式.
    UIViewKeyframeAnimationOptionCalculationModeCubic      = 3 << 10, //!< 平滑運(yùn)算模式.
    UIViewKeyframeAnimationOptionCalculationModeCubicPaced = 4 << 10  //!< 平滑均勻運(yùn)算模式.
} NS_ENUM_AVAILABLE_IOS(7_0);
 
typedef NS_ENUM(NSUInteger, UISystemAnimation) {
    UISystemAnimationDelete,    //!< 系統(tǒng)刪除動(dòng)畫
} NS_ENUM_AVAILABLE_IOS(7_0);
 
typedef NS_ENUM(NSInteger, UIViewTintAdjustmentMode) {
    UIViewTintAdjustmentModeAutomatic,  //!< 自動(dòng)的蒿叠,與父視圖相同.
    
    UIViewTintAdjustmentModeNormal,     //!< 未經(jīng)修改的.
    UIViewTintAdjustmentModeDimmed,     //!< 飽和明垢、暗淡的原始色.
} NS_ENUM_AVAILABLE_IOS(7_0);
 
typedef NS_ENUM(NSInteger, UISemanticContentAttribute) {
    UISemanticContentAttributeUnspecified = 0,  //!< 未指定,默認(rèn)值
    UISemanticContentAttributePlayback,         //!< 打開/ RW / FF等播放控制按鈕
    UISemanticContentAttributeSpatial,          //!< 控制導(dǎo)致某種形式的定向改變UI中,如分段控制文本對(duì)齊方式或在游戲中方向鍵
    UISemanticContentAttributeForceLeftToRight, //!< 視圖總是從左向右布局.
    UISemanticContentAttributeForceRightToLeft  //!< 視圖總是從右向左布局.
} NS_ENUM_AVAILABLE_IOS(9_0);
 
@protocol UICoordinateSpace <NSObject>
 
/** 將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中市咽,返回在目標(biāo)視圖view中的像素值 */
- (CGPoint)convertPoint:(CGPoint)point toCoordinateSpace:(id <UICoordinateSpace>)coordinateSpace NS_AVAILABLE_IOS(8_0);
/** 將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中澡刹,返回在目標(biāo)視圖view中的像素值 */
- (CGPoint)convertPoint:(CGPoint)point fromCoordinateSpace:(id <UICoordinateSpace>)coordinateSpace NS_AVAILABLE_IOS(8_0);
/** 將rect由rect所在視圖轉(zhuǎn)換到目標(biāo)視圖view中共耍,返回在目標(biāo)視圖view中的rect */
- (CGRect)convertRect:(CGRect)rect toCoordinateSpace:(id <UICoordinateSpace>)coordinateSpace NS_AVAILABLE_IOS(8_0);
/** 將rect從view中轉(zhuǎn)換到當(dāng)前視圖中,返回在當(dāng)前視圖中的rect */
- (CGRect)convertRect:(CGRect)rect fromCoordinateSpace:(id <UICoordinateSpace>)coordinateSpace NS_AVAILABLE_IOS(8_0);
 
/** 獲取bounds */
@property (readonly, nonatomic) CGRect bounds NS_AVAILABLE_IOS(8_0);
 
@end
 
@class UIBezierPath, UIEvent, UIWindow, UIViewController, UIColor, UIGestureRecognizer, UIMotionEffect, CALayer, UILayoutGuide;
 
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusItem, CALayerDelegate>
 
/** 返回主layer所使用的類 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) Class layerClass;
#else
+ (Class)layerClass;
#endif
 
/** 通過Frame初始化UI對(duì)象 */
- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
/** 用于xib初始化 */
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
 
/** 設(shè)置用戶交互,默認(rèn)YES允許用戶交互 */
@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;
/** 控件標(biāo)記(父控件可以通過tag找到對(duì)應(yīng)的子控件)坎藐,默認(rèn)為0 */
@property(nonatomic)                                 NSInteger tag;
/** 視圖圖層(可以用來設(shè)置圓角效果/陰影效果) */
@property(nonatomic,readonly,strong)                 CALayer  *layer;
 
/** 返回是否可以成為焦點(diǎn), 默認(rèn)NO */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic,readonly) BOOL canBecomeFocused NS_AVAILABLE_IOS(9_0);
#else
- (BOOL)canBecomeFocused NS_AVAILABLE_IOS(9_0);
#endif
/** 是否可以被聚焦 */
@property (readonly, nonatomic, getter=isFocused) BOOL focused NS_AVAILABLE_IOS(9_0);
 
/** 左右滑動(dòng)翻轉(zhuǎn)效果 */
@property (nonatomic) UISemanticContentAttribute semanticContentAttribute NS_AVAILABLE_IOS(9_0);
 
/** 獲取視圖的方向 */
+ (UIUserInterfaceLayoutDirection)userInterfaceLayoutDirectionForSemanticContentAttribute:(UISemanticContentAttribute)attribute NS_AVAILABLE_IOS(9_0);
 
/** 獲取相對(duì)于指定視圖的界面方向 */
+ (UIUserInterfaceLayoutDirection)userInterfaceLayoutDirectionForSemanticContentAttribute:(UISemanticContentAttribute)semanticContentAttribute relativeToLayoutDirection:(UIUserInterfaceLayoutDirection)layoutDirection NS_AVAILABLE_IOS(10_0);
 
/** 返回即時(shí)內(nèi)容的布局的方向 */
@property (readonly, nonatomic) UIUserInterfaceLayoutDirection effectiveUserInterfaceLayoutDirection NS_AVAILABLE_IOS(10_0);
 
@end
 
@interface UIView(UIViewGeometry)
 
/** 位置和尺寸(以父控件的左上角為坐標(biāo)原點(diǎn)(0, 0)) */
@property(nonatomic) CGRect            frame;
 
/** 位置和尺寸(以自己的左上角為坐標(biāo)原點(diǎn)(0, 0)) */
@property(nonatomic) CGRect            bounds;
/** 中心點(diǎn)(以父控件的左上角為坐標(biāo)原點(diǎn)(0, 0)) */
@property(nonatomic) CGPoint           center;
/** 變形屬性(平移\縮放\旋轉(zhuǎn)) */
@property(nonatomic) CGAffineTransform transform;
/** 視圖內(nèi)容的縮放比例 */
@property(nonatomic) CGFloat           contentScaleFactor NS_AVAILABLE_IOS(4_0);
 
/** 是否支持多點(diǎn)觸摸,默認(rèn)NO */
@property(nonatomic,getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled __TVOS_PROHIBITED;
/** 是否獨(dú)占整個(gè)Touch事件别智,默認(rèn)NO */
@property(nonatomic,getter=isExclusiveTouch) BOOL       exclusiveTouch __TVOS_PROHIBITED;
 
/** 在指定點(diǎn)上點(diǎn)擊測(cè)試指定事件 */
- (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event;
/** 判斷當(dāng)前的點(diǎn)擊或者觸摸事件的點(diǎn)是否在當(dāng)前的view中九火,默認(rèn)返回YES */
- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event;
 
/** 將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中,返回在目標(biāo)視圖view中的像素值 */
- (CGPoint)convertPoint:(CGPoint)point toView:(nullable UIView *)view;
/** 將像素point由point所在視圖轉(zhuǎn)換到目標(biāo)視圖view中俱尼,返回在目標(biāo)視圖view中的像素值 */
- (CGPoint)convertPoint:(CGPoint)point fromView:(nullable UIView *)view;
/** 將rect由rect所在視圖轉(zhuǎn)換到目標(biāo)視圖view中抖单,返回在目標(biāo)視圖view中的rect */
- (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view;
/** 將rect從view中轉(zhuǎn)換到當(dāng)前視圖中,返回在當(dāng)前視圖中的rect */
- (CGRect)convertRect:(CGRect)rect fromView:(nullable UIView *)view;
 
/** 自動(dòng)調(diào)整子視圖尺寸遇八,默認(rèn)YES則會(huì)根據(jù)autoresizingMask屬性自動(dòng)調(diào)整子視圖尺寸 */
@property(nonatomic) BOOL               autoresizesSubviews;
/** 自動(dòng)調(diào)整子視圖與父視圖的位置矛绘,默認(rèn)UIViewAutoresizingNone */
@property(nonatomic) UIViewAutoresizing autoresizingMask;
 
/** 返回“最佳”大小適合給定的大小 */
- (CGSize)sizeThatFits:(CGSize)size;
/** 調(diào)整為剛好合適子視圖大小 */
- (void)sizeToFit;
 
@end
 
@interface UIView(UIViewHierarchy)
 
/** 獲取父視圖 */
@property(nullable, nonatomic,readonly) UIView       *superview;
/** 獲取所有子視圖 */
@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;
/** 獲取視圖所在的Window */
@property(nullable, nonatomic,readonly) UIWindow     *window;
 
/** 從父視圖中移除控件 */
- (void)removeFromSuperview;
/** 插入子視圖(將子視圖插入到subviews數(shù)組中index這個(gè)位置) */
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
/** 交換subviews數(shù)組中所存放子視圖的位置 */
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;
 
/** 添加子視圖(新添加的視圖在subviews數(shù)組的后面, 顯示在最上面) */
- (void)addSubview:(UIView *)view;
/** 插入子視圖(將子視圖插到siblingSubview之下) */
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
/** 插入子視圖(將子視圖插到siblingSubview之上) */
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
 
/** 將子視圖拉到最上面來顯示 */
- (void)bringSubviewToFront:(UIView *)view;
/** 將子視圖拉到最下面來顯示 */
- (void)sendSubviewToBack:(UIView *)view;
 
##pragma mark - 系統(tǒng)自動(dòng)調(diào)用(留給子類去實(shí)現(xiàn))
/** 添加自視圖完成后調(diào)用 */
- (void)didAddSubview:(UIView *)subview;
/** 將要移除自視圖時(shí)調(diào)用 */
- (void)willRemoveSubview:(UIView *)subview;
 
/** 將要移動(dòng)到新父視圖時(shí)調(diào)用 */
- (void)willMoveToSuperview:(nullable UIView *)newSuperview;
/** 移動(dòng)到新父視圖完成后調(diào)用 */
- (void)didMoveToSuperview;
/** 將要移動(dòng)到新Window時(shí)調(diào)用 */
- (void)willMoveToWindow:(nullable UIWindow *)newWindow;
/** 移動(dòng)到新Window完成后調(diào)用 */
- (void)didMoveToWindow;
 
/** 判斷view是否為子類 */
- (BOOL)isDescendantOfView:(UIView *)view;
/** 通過tag獲得對(duì)應(yīng)的子視圖 */
- (nullable __kindof UIView *)viewWithTag:(NSInteger)tag;
 
/** 對(duì)現(xiàn)在有布局有調(diào)整更改后,使用這個(gè)方法進(jìn)行更新 */
- (void)setNeedsLayout;
/** 強(qiáng)制進(jìn)行更新layout */
- (void)layoutIfNeeded;
 
/** 控件的frame發(fā)生改變的時(shí)候就會(huì)調(diào)用,一般在這里重寫布局子控件的位置和尺寸 */
- (void)layoutSubviews;
 
/** 設(shè)置view之間的間距刃永,該屬性只對(duì)autolayout布局有效 */
@property (nonatomic) UIEdgeInsets layoutMargins NS_AVAILABLE_IOS(8_0);
/** 是否將當(dāng)前視圖的間距和父視圖相同货矮,默認(rèn)是NO */
@property (nonatomic) BOOL preservesSuperviewLayoutMargins NS_AVAILABLE_IOS(8_0);
/** 改變view的layoutMargins這個(gè)屬性時(shí),會(huì)觸發(fā)這個(gè)方法 */
- (void)layoutMarginsDidChange NS_AVAILABLE_IOS(8_0);
 
/** 視圖間距引導(dǎo) */
@property(readonly,strong) UILayoutGuide *layoutMarginsGuide NS_AVAILABLE_IOS(9_0);
 
/** 獲取此區(qū)域的內(nèi)的布局引導(dǎo) */
@property (nonatomic, readonly, strong) UILayoutGuide *readableContentGuide  NS_AVAILABLE_IOS(9_0);
@end
 
@interface UIView(UIViewRendering)
 
/** 重寫drawRect方法斯够,在可以這里進(jìn)行繪圖操作囚玫。*/
- (void)drawRect:(CGRect)rect;
 
/** 標(biāo)記整個(gè)視圖的邊界矩形需要重繪, 調(diào)用這個(gè)方法會(huì)自動(dòng)調(diào)用drawRect方法 */
- (void)setNeedsDisplay;
/** 標(biāo)記在指定區(qū)域內(nèi)的視圖的邊界需要重繪, 調(diào)用這個(gè)方法會(huì)自動(dòng)調(diào)用drawRect方法 */
- (void)setNeedsDisplayInRect:(CGRect)rect;
 
/** 是否裁剪超出Bounds范圍的子控件,默認(rèn)NO */
@property(nonatomic)                 BOOL              clipsToBounds;
/** 設(shè)置背景顏色雳刺,默認(rèn)nil */
@property(nullable, nonatomic,copy)  UIColor          *backgroundColor UI_APPEARANCE_SELECTOR;
/** 設(shè)置透明度(范圍0.0~1.0)劫灶,默認(rèn)1.0 */
@property(nonatomic)                 CGFloat           alpha;
/** 設(shè)置是否不透明,默認(rèn)YES不透明 */
@property(nonatomic,getter=isOpaque) BOOL              opaque;
/** 視圖重繪前是否先清理以前的內(nèi)容掖桦,默認(rèn)YES */
@property(nonatomic)                 BOOL              clearsContextBeforeDrawing;
/** 設(shè)置是否隱藏本昏,默認(rèn)NO不隱藏 */
@property(nonatomic,getter=isHidden) BOOL              hidden;
/** 內(nèi)容顯示的模式,默認(rèn)UIViewContentModeScaleToFill */
@property(nonatomic)                 UIViewContentMode contentMode;
/** 拉伸屬性枪汪,如圖片拉伸 */
@property(nonatomic)                 CGRect            contentStretch NS_DEPRECATED_IOS(3_0,6_0) __TVOS_PROHIBITED;
 
/** 蒙板view */
@property(nullable, nonatomic,strong)          UIView           *maskView NS_AVAILABLE_IOS(8_0);
 
/** 改變應(yīng)用程序的外觀的顏色涌穆。默認(rèn)為nil */
@property(null_resettable, nonatomic, strong) UIColor *tintColor NS_AVAILABLE_IOS(7_0);
 
/** 可以使tintColor變暗,因此整個(gè)視圖層次變暗 */
@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode NS_AVAILABLE_IOS(7_0);
 
/** 覆蓋這個(gè)方法的目的是為了當(dāng)tintColor改變的時(shí)候自定義一些行為 */
- (void)tintColorDidChange NS_AVAILABLE_IOS(7_0);
 
@end
 
@interface UIView(UIViewAnimation)
 
/** 開始動(dòng)畫 */
+ (void)beginAnimations:(nullable NSString *)animationID context:(nullable void *)context;
/** 提交動(dòng)畫 */
+ (void)commitAnimations;
 
/** 設(shè)置動(dòng)畫代理, 默認(rèn)nil */
+ (void)setAnimationDelegate:(nullable id)delegate;
/** 動(dòng)畫將要開始時(shí)執(zhí)行方法(必須要先設(shè)置動(dòng)畫代理), 默認(rèn)NULL */
+ (void)setAnimationWillStartSelector:(nullable SEL)selector;
/** 動(dòng)畫已結(jié)束時(shí)執(zhí)行方法(必須要先設(shè)置動(dòng)畫代理), 默認(rèn)NULL */
+ (void)setAnimationDidStopSelector:(nullable SEL)selector;
/** 設(shè)置動(dòng)畫時(shí)長(zhǎng), 默認(rèn)0.2秒 */
+ (void)setAnimationDuration:(NSTimeInterval)duration;
/** 動(dòng)畫延遲執(zhí)行時(shí)間, 默認(rèn)0.0秒 */
+ (void)setAnimationDelay:(NSTimeInterval)delay;
/** 設(shè)置在動(dòng)畫塊內(nèi)部動(dòng)畫屬性改變的開始時(shí)間, 默認(rèn)now ([NSDate date]) */
+ (void)setAnimationStartDate:(NSDate *)startDate;
/** 設(shè)置動(dòng)畫曲線, 默認(rèn)UIViewAnimationCurveEaseInOut */
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve;
/** 動(dòng)畫的重復(fù)播放次數(shù)雀久, 默認(rèn)0 */
+ (void)setAnimationRepeatCount:(float)repeatCount;
/** 設(shè)置是否自定翻轉(zhuǎn)當(dāng)前的動(dòng)畫效果, 默認(rèn)NO */
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;
/** 設(shè)置動(dòng)畫從當(dāng)前狀態(tài)開始播放, 默認(rèn)NO */
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState;
 
/** 在動(dòng)畫塊中為視圖設(shè)置過渡動(dòng)畫 */
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache;
 
/** 設(shè)置是否激活動(dòng)畫 */
+ (void)setAnimationsEnabled:(BOOL)enabled;
/** 返回一個(gè)布爾值表示動(dòng)畫是否結(jié)束 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) BOOL areAnimationsEnabled;
#else
+ (BOOL)areAnimationsEnabled;
#endif
/** 先檢查動(dòng)畫當(dāng)前是否啟用宿稀,然后禁止動(dòng)畫,執(zhí)行block內(nèi)的方法赖捌,最后重新啟用動(dòng)畫祝沸,而且這個(gè)方法不會(huì)阻塞基于CoreAnimation的動(dòng)畫 */
+ (void)performWithoutAnimation:(void (NS_NOESCAPE ^)(void))actionsWithoutAnimation NS_AVAILABLE_IOS(7_0);
 
/** 當(dāng)前動(dòng)畫的持續(xù)時(shí)間 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) NSTimeInterval inheritedAnimationDuration NS_AVAILABLE_IOS(9_0);
#else
+ (NSTimeInterval)inheritedAnimationDuration NS_AVAILABLE_IOS(9_0);
#endif
 
@end
 
@interface UIView(UIViewAnimationWithBlocks)
 
/** 用于對(duì)一個(gè)或多個(gè)視圖的改變的持續(xù)時(shí)間、延時(shí)、選項(xiàng)動(dòng)畫完成時(shí)的操作 */
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);
 
/** 用于對(duì)一個(gè)或多個(gè)視圖的改變的持續(xù)時(shí)間罩锐、選項(xiàng)動(dòng)畫完成時(shí)的操作奉狈,默認(rèn):delay = 0.0, options = 0 */
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);
 
/** 用于對(duì)一個(gè)或多個(gè)視圖的改變的持續(xù)時(shí)間內(nèi)動(dòng)畫完成時(shí)的操作,默認(rèn):delay = 0.0, options = 0, completion = NULL */
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations NS_AVAILABLE_IOS(4_0);
 
/** 使用與物理彈簧運(yùn)動(dòng)相對(duì)應(yīng)的定時(shí)曲線執(zhí)行視圖動(dòng)畫 */
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);
 
/** 為指定的容器視圖創(chuàng)建轉(zhuǎn)換動(dòng)畫 */
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);
 
/** 使用給定的參數(shù)在指定視圖之間創(chuàng)建轉(zhuǎn)換動(dòng)畫 */
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0); // toView added to fromView.superview, fromView removed from its superview
 
/** 在一個(gè)或多個(gè)視圖上執(zhí)行指定的系統(tǒng)提供的動(dòng)畫涩惑,以及定義的可選并行動(dòng)畫 */
+ (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray<__kindof UIView *> *)views options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))parallelAnimations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);
 
@end
 
/** UIView的關(guān)鍵幀動(dòng)畫 */
@interface UIView (UIViewKeyframeAnimations)
 
/** 創(chuàng)建一個(gè)動(dòng)畫塊對(duì)象仁期,可用于為當(dāng)前視圖設(shè)置基于關(guān)鍵幀的動(dòng)畫 */
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);
/** 添加指定開始時(shí)間、持續(xù)時(shí)間的關(guān)鍵幀動(dòng)畫(起始和持續(xù)時(shí)間是0.0和1.0之間的值) */
+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime relativeDuration:(double)frameDuration animations:(void (^)(void))animations NS_AVAILABLE_IOS(7_0);
 
@end
 
@interface UIView (UIViewGestureRecognizers)
 
/** 當(dāng)前視圖所附加的所有手勢(shì)識(shí)別器 */
@property(nullable, nonatomic,copy) NSArray<__kindof UIGestureRecognizer *> *gestureRecognizers NS_AVAILABLE_IOS(3_2);
 
/** 添加一個(gè)手勢(shì)識(shí)別器 */
- (void)addGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer NS_AVAILABLE_IOS(3_2);
/** 移除一個(gè)手勢(shì)識(shí)別器 */
- (void)removeGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer NS_AVAILABLE_IOS(3_2);
 
/** 開始一個(gè)手勢(shì)識(shí)別器 */
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer NS_AVAILABLE_IOS(6_0);
 
@end
 
@interface UIView (UIViewMotionEffects)
 
/** 添加運(yùn)動(dòng)效果竭恬,當(dāng)傾斜設(shè)備時(shí)視圖稍微改變其位置 */
- (void)addMotionEffect:(UIMotionEffect *)effect NS_AVAILABLE_IOS(7_0);
 
/** 移除運(yùn)動(dòng)效果 */
- (void)removeMotionEffect:(UIMotionEffect *)effect NS_AVAILABLE_IOS(7_0);
 
/** 所有添加的運(yùn)動(dòng)效果 */
@property (copy, nonatomic) NSArray<__kindof UIMotionEffect *> *motionEffects NS_AVAILABLE_IOS(7_0);
 
@end
 
 
typedef NS_ENUM(NSInteger, UILayoutConstraintAxis) {
    UILayoutConstraintAxisHorizontal = 0,   //!< 水平約束.
    UILayoutConstraintAxisVertical = 1      //!< 豎直約束.
};
 
 
@interface UIView (UIConstraintBasedLayoutInstallingConstraints)
 
/** 獲取所有約束 */
@property(nonatomic,readonly) NSArray<__kindof NSLayoutConstraint *> *constraints NS_AVAILABLE_IOS(6_0);
 
/** 添加一個(gè)約束 */
- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);
/** 添加多個(gè)約束 */
- (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints NS_AVAILABLE_IOS(6_0);
/** 移除一個(gè)約束 */
- (void)removeConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);
/** 移除多個(gè)約束 */
- (void)removeConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints NS_AVAILABLE_IOS(6_0);
@end
 
 
@interface UIView (UIConstraintBasedLayoutCoreMethods)
/** 更新視圖和其子視圖的約束 */
- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);
/** 為視圖更新約束跛蛋,可以重寫這個(gè)方法來設(shè)置當(dāng)前view局部的布局約束 */
- (void)updateConstraints NS_AVAILABLE_IOS(6_0) NS_REQUIRES_SUPER;
/** 視圖的約束是否需要更新 */
- (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0);
/** 設(shè)置視圖的約束需要更新,調(diào)用這個(gè)方法痊硕,系統(tǒng)會(huì)調(diào)用updateConstraints去更新布局 */
- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);
@end
 
 
@interface UIView (UIConstraintBasedCompatibility)
 
/** 是否啟用自動(dòng)布局約束赊级,默認(rèn)YES. IB默認(rèn)是NO */
@property(nonatomic) BOOL translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0);
 
/** 是否使用約束布局 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(class, nonatomic, readonly) BOOL requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);
#else
+ (BOOL)requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);
#endif
 
@end
 
 
@interface UIView (UIConstraintBasedLayoutLayering)
 
/** 返回給定框架的視圖的對(duì)齊矩陣 */
- (CGRect)alignmentRectForFrame:(CGRect)frame NS_AVAILABLE_IOS(6_0);
/** 返回給定對(duì)齊矩形的視圖的frame */
- (CGRect)frameForAlignmentRect:(CGRect)alignmentRect NS_AVAILABLE_IOS(6_0);
 
/** 返回從視圖的frame上定義的對(duì)齊矩陣的邊框 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic, readonly) UIEdgeInsets alignmentRectInsets NS_AVAILABLE_IOS(6_0);
#else
- (UIEdgeInsets)alignmentRectInsets NS_AVAILABLE_IOS(6_0);
#endif
 
/** 返回滿足基線約束條件的視圖 */
- (UIView *)viewForBaselineLayout NS_DEPRECATED_IOS(6_0, 9_0, "Override -viewForFirstBaselineLayout or -viewForLastBaselineLayout as appropriate, instead") __TVOS_PROHIBITED;
 
/** 返回用于滿足第一基線約束的視圖 */
@property(readonly,strong) UIView *viewForFirstBaselineLayout NS_AVAILABLE_IOS(9_0);
 
/** 返回用于滿足上次基線約束的視圖 */
@property(readonly,strong) UIView *viewForLastBaselineLayout NS_AVAILABLE_IOS(9_0);
 
 
UIKIT_EXTERN const CGFloat UIViewNoIntrinsicMetric NS_AVAILABLE_IOS(6_0); // -1
/** 返回接收對(duì)象的原本大小 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic, readonly) CGSize intrinsicContentSize NS_AVAILABLE_IOS(6_0);
#else
- (CGSize)intrinsicContentSize NS_AVAILABLE_IOS(6_0);
#endif
/** 廢除視圖原本內(nèi)容的size */
- (void)invalidateIntrinsicContentSize NS_AVAILABLE_IOS(6_0);
 
/** 設(shè)置當(dāng)視圖要變大時(shí),視圖的壓縮改變方式寿桨,返回一個(gè)優(yōu)先權(quán)(確定view有多大的優(yōu)先級(jí)阻止自己變大) */
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
/** 設(shè)置放先權(quán) */
- (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
 
/** 設(shè)置當(dāng)視圖要變小時(shí)此衅,視圖的壓縮改變方式强戴,是水平縮小還是垂直縮小亭螟,并返回一個(gè)優(yōu)先權(quán)(確定有多大的優(yōu)先級(jí)阻止自己變小) */
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
/** 設(shè)置優(yōu)先權(quán) */
- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
@end
 
// Size To Fit
 
UIKIT_EXTERN const CGSize UILayoutFittingCompressedSize NS_AVAILABLE_IOS(6_0);
UIKIT_EXTERN const CGSize UILayoutFittingExpandedSize NS_AVAILABLE_IOS(6_0);
 
@interface UIView (UIConstraintBasedLayoutFittingSize)
/** 返回滿足持有約束的視圖的size */
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize NS_AVAILABLE_IOS(6_0);
/** 返回滿足它所包含的約束的視圖的大小 */
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority NS_AVAILABLE_IOS(8_0);
@end
 
@interface UIView (UILayoutGuideSupport)
 
/** 此視圖擁有布局向?qū)?duì)象的數(shù)組 */
@property(nonatomic,readonly,copy) NSArray<__kindof UILayoutGuide *> *layoutGuides NS_AVAILABLE_IOS(9_0);
 
/** 向視圖中添加布局向?qū)?*/
- (void)addLayoutGuide:(UILayoutGuide *)layoutGuide NS_AVAILABLE_IOS(9_0);
 
/** 向視圖中添加布局向?qū)?*/
- (void)removeLayoutGuide:(UILayoutGuide *)layoutGuide NS_AVAILABLE_IOS(9_0);
@end
 
@class NSLayoutXAxisAnchor,NSLayoutYAxisAnchor,NSLayoutDimension;
@interface UIView (UIViewLayoutConstraintCreation)
/** 布局視圖的前緣框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutXAxisAnchor *leadingAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的后緣邊框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutXAxisAnchor *trailingAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的左邊框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutXAxisAnchor *leftAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的右邊框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutXAxisAnchor *rightAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的頂邊框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutYAxisAnchor *topAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的底邊框的布局錨點(diǎn) */
@property(readonly, strong) NSLayoutYAxisAnchor *bottomAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的寬度 */
@property(readonly, strong) NSLayoutDimension *widthAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的高度 */
@property(readonly, strong) NSLayoutDimension *heightAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的水平中心軸 */
@property(readonly, strong) NSLayoutXAxisAnchor *centerXAnchor NS_AVAILABLE_IOS(9_0);
/** 布局視圖的垂直中心軸 */
@property(readonly, strong) NSLayoutYAxisAnchor *centerYAnchor NS_AVAILABLE_IOS(9_0);
/** 一個(gè)代表對(duì)視圖中的文本的最高線基線布置錨 */
@property(readonly, strong) NSLayoutYAxisAnchor *firstBaselineAnchor NS_AVAILABLE_IOS(9_0);
/** 一個(gè)代表對(duì)視圖中的文本的最低線基線布置錨 */
@property(readonly, strong) NSLayoutYAxisAnchor *lastBaselineAnchor NS_AVAILABLE_IOS(9_0);
 
@end
 
@interface UIView (UIConstraintBasedLayoutDebugging)
 
/** 獲得實(shí)體在不同方向上所有的布局約束 */
- (NSArray<__kindof NSLayoutConstraint *> *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(6_0);
 
/** 可以知道當(dāng)前視圖的布局是否會(huì)有歧義 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic, readonly) BOOL hasAmbiguousLayout NS_AVAILABLE_IOS(6_0);
#else
- (BOOL)hasAmbiguousLayout NS_AVAILABLE_IOS(6_0);
#endif
 
/** 這個(gè)方法會(huì)隨機(jī)改變視圖的layout到另外一個(gè)有效的layout骑歹。這樣我們就可以很清楚的看到哪一個(gè)layout導(dǎo)致了整體的布局約束出現(xiàn)了錯(cuò)誤预烙,或者我們應(yīng)該增加更多的布局約束 */
- (void)exerciseAmbiguityInLayout NS_AVAILABLE_IOS(6_0);
@end
 
/** 約束調(diào)試,只在DEBUG環(huán)境下被調(diào)用 */
@interface UILayoutGuide (UIConstraintBasedLayoutDebugging)
 
/** 獲得實(shí)體在不同方向上所有的布局約束 */
- (NSArray<__kindof NSLayoutConstraint *> *)constraintsAffectingLayoutForAxis:(UILayoutConstraintAxis)axis NS_AVAILABLE_IOS(10_0);
 
/** 可以知道當(dāng)前視圖的布局是否會(huì)有歧義 */
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic, readonly) BOOL hasAmbiguousLayout NS_AVAILABLE_IOS(10_0);
#else
- (BOOL)hasAmbiguousLayout NS_AVAILABLE_IOS(10_0);
#endif
@end
 
#pragma mark - View狀態(tài)保存恢復(fù)
@interface UIView (UIStateRestoration)
/** 標(biāo)示是否支持保存,恢復(fù)視圖狀態(tài)信息 */
@property (nullable, nonatomic, copy) NSString *restorationIdentifier NS_AVAILABLE_IOS(6_0);
/** 保存視圖狀態(tài)相關(guān)的信息 */
- (void) encodeRestorableStateWithCoder:(NSCoder *)coder NS_AVAILABLE_IOS(6_0);
/** 恢復(fù)和保持視圖狀態(tài)相關(guān)信息 */
- (void) decodeRestorableStateWithCoder:(NSCoder *)coder NS_AVAILABLE_IOS(6_0);
@end
 
#pragma mark - View快照
@interface UIView (UISnapshotting)
/** 將當(dāng)前顯示的view截取成一個(gè)新的view */
- (nullable UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates NS_AVAILABLE_IOS(7_0);
/** 縮放一個(gè)view默認(rèn)是從中心點(diǎn)進(jìn)行縮放的 */
- (nullable UIView *)resizableSnapshotViewFromRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates withCapInsets:(UIEdgeInsets)capInsets NS_AVAILABLE_IOS(7_0);
/** 屏幕快照 */
- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates NS_AVAILABLE_IOS(7_0);
@end

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末道媚,一起剝皮案震驚了整個(gè)濱河市扁掸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌最域,老刑警劉巖谴分,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異镀脂,居然都是意外死亡牺蹄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門薄翅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙兰,“玉大人,你說我怎么就攤上這事翘魄《μ欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵暑竟,是天一觀的道長(zhǎng)斋射。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么罗岖? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任怀大,我火速辦了婚禮,結(jié)果婚禮上呀闻,老公的妹妹穿的比我還像新娘化借。我一直安慰自己,他們只是感情好捡多,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布蓖康。 她就那樣靜靜地躺著,像睡著了一般垒手。 火紅的嫁衣襯著肌膚如雪蒜焊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天科贬,我揣著相機(jī)與錄音泳梆,去河邊找鬼。 笑死榜掌,一個(gè)胖子當(dāng)著我的面吹牛优妙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播憎账,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼套硼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了胞皱?” 一聲冷哼從身側(cè)響起邪意,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎反砌,沒想到半個(gè)月后雾鬼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宴树,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年策菜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片森渐。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡做入,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出同衣,到底是詐尸還是另有隱情竟块,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布耐齐,位于F島的核電站浪秘,受9級(jí)特大地震影響蒋情,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耸携,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一棵癣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夺衍,春花似錦狈谊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至矛紫,卻和暖如春赎瞎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颊咬。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工务甥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喳篇。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓敞临,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親杭隙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哟绊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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