@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 與檔案所有者同一組的使用者的許可權是讀 ...