IOS UI UIView檔案解讀

2021-07-04 09:38:39 字數 4643 閱讀 9037

@inte***ce

uiview : uiresponder

/** * 通過乙個frame來初始化乙個ui控制項

*/- (id)initwithframe:(cgrect)frame;

// yes:能夠跟使用者進行互動

@property(nonatomic,getter=isuserinteractionenabled) bool userinteractionenabled; // default is yes

// 控制項的乙個標記(父控制項可以通過tag找到對應的子控制項)

@property(nonatomic) nsinteger tag; // default is 0

// 圖層(可以用來設定圓角效果\陰影效果)

@property(nonatomic,readonly,retain) calayer *layer;

@end

@inte***ce

uiview(uiviewgeometry)

// 位置和尺寸(以父控制項的左上角為座標原點(0, 0))

@property(nonatomic) cgrect frame;

// 位置和尺寸(以自己的左上角為座標原點(0, 0))

@property(nonatomic) cgrect bounds;

// 中點(以父控制項的左上角為座標原點(0, 0))

@property(nonatomic) cgpoint center;

// 形變屬性(平移\縮放\旋轉)

@property(nonatomic) cgaffinetransform transform; // default is cgaffinetransformidentity

// yes:支援多點觸控

@property(nonatomic,getter=ismultipletouchenabled) bool multipletouchenabled; // default is no

@end

@inte***ce

uiview(uiviewhierarchy)

// 父控制項

@property(nonatomic,readonly) uiview *superview;

// 子控制項(新新增的控制項預設都在subviews陣列的後面, 新新增的控制項預設都顯示在最上面\最頂部)

@property(nonatomic,readonly,copy) nsarray *subviews;

// 獲得當前控制項所在的window

@property(nonatomic,readonly) uiwindow *window;

// 從父控制項中移除乙個控制項

- (void)removefromsuperview;

// 新增乙個子控制項(可以將子控制項插入到subviews陣列中index這個位置)

- (void)insertsubview:(uiview *)view atindex:(nsinteger)index;

// 交換subviews陣列中所存放子控制項的位置

- (void)exchangesubviewatindex:(nsinteger)index1 withsubviewatindex:(nsinteger)index2;

// 新增乙個子控制項(新新增的控制項預設都在subviews陣列的後面, 新新增的控制項預設都顯示在最上面\最頂部)

- (void)addsubview:(uiview *)view;

// 新增乙個子控制項view(被擋在siblingsubview的下面)

- (void)insertsubview:(uiview *)view belowsubview:(uiview *)siblingsubview;

// 新增乙個子控制項view(蓋在siblingsubview的上面)

- (void)insertsubview:(uiview *)view abovesubview:(uiview *)siblingsubview;

// 將某個子控制項拉到最上面(最頂部)來顯示

- (void)bringsubviewtofront:(uiview *)view;

// 將某個子控制項拉到最下面(最底部)來顯示

- (void)sendsubviewtoback:(uiview *)view;

/**系統自動呼叫(留給子類去實現)**/

- (void)didaddsubview:(uiview *)subview;

- (void)willremovesubview:(uiview *)subview;

- (void)willmovetosuperview:(uiview *)newsuperview;

- (void)didmovetosuperview;

- (void)willmovetowindow:(uiwindow *)newwindow;

- (void)didmovetowindow;

/**系統自動呼叫**/

// 是不是view的子控制項或者子控制項的子控制項(是否為view的後代)

- (bool)isdescendantofview:(uiview *)view; // returns yes for self.

// 通過tag獲得對應的子控制項(也可以或者子控制項的子控制項)

- (uiview *)viewwithtag:(nsinteger)tag; // recursive search. includes self

/**系統自動呼叫(留給子類去實現)**/

// 控制項的frame發生改變的時候就會呼叫,一般在這裡重寫布局子控制項的位置和尺寸

// 重寫了這個寫方法後,一定呼叫[super layoutsubviews];

- (void)layoutsubviews;

@end

@inte***ce

uiview(uiviewrendering)

// yes : 超出控制項邊框範圍的內容都剪掉

@property(nonatomic) bool clipstobounds;

// 背景色

@property(nonatomic,copy) uicolor *backgroundcolor; // default is nil

// 透明度(0.0~1.0)

@property(nonatomic) cgfloat alpha; // default is 1.0

// yes:不透明 no:透明

@property(nonatomic,getter=isopaque) bool opaque; // default is yes

// yes : 隱藏 no : 顯示

@property(nonatomic,getter=ishidden) bool hidden;

// 內容模式

@property(nonatomic) uiviewcontentmode contentmode; // default is uiviewcontentmodescaletofill

@end

@inte***ce

uiview(uiviewanimationwithblocks)

+ (void)animatewithduration:(nstimeinterval)duration delay:(nstimeinterval)delay options:(uiviewanimationoptions)options animations:(void (^)(void))animations completion:(void (^)(bool finished))completion;

+ (void)animatewithduration:(nstimeinterval)duration animations:(void (^)(void))animations completion:(void (^)(bool finished))completion;

+ (void)animatewithduration:(nstimeinterval)duration animations:(void (^)(void))animations;

+ (void)animatewithduration:(nstimeinterval)duration delay:(nstimeinterval)delay usingspringwithdamping:(cgfloat)dampingratio initialspringvelocity:(cgfloat)velocity options:

+(uiviewanimationoptions)options animations:(void (^)(void))animations completion:(void (^)(bool finished))completion;

@end

csv檔案解讀

csv格式是分隔的資料格式,有欄位 列分隔的逗號字元和記錄 行分隔換行符。字段包含特殊字元 逗號,換行符,或雙引號 必須以雙引號括住。行內包含乙個專案是空字串,可以以雙引號括住。欄位的值包含雙引號時,要雙寫這個雙引號 就像把乙個雙引號當做轉義符一樣 csv檔案格式並不需要特定的字元編碼,位元組順序,...

yaml檔案解讀

還是菜鳥來的快,多看看例子 k 空格 v 表示一對鍵值對 空格必須有 雙引號 會轉義字串裡面的特殊字元 特殊字元會作為本身想表示的意思 name zhangsan n lisi 輸出 zhangsan 換行 lisi 單引號 不會轉義特殊字元,特殊字元最終只是乙個普通的字串資料 name zhang...

Linux檔案許可權解讀

檔案許可權 rwxr r 1 root root 638 6月 30 21 48 package.txt 第乙個字元代表檔案 目錄 d 鏈結 l 其餘字元每3個一組 rwx 讀 r 寫 w 執行 x 第一組rwx 檔案所有者的許可權是讀 寫和執行 第二組rw 與檔案所有者同一組的使用者的許可權是讀 ...