title: swift學習筆記《5》- 實用 date: 2016-09-21 21:39:00 categories:
- 學習筆記
- Swift學習
tags: - Swift
1.setValue:forKeyPath
實現原理
-
setValue:forKeyPath
實現原理 -
先看有沒有對應key值的set方法,如果有set方法,就會呼叫set方法,給對應的屬性賦值
-
如果沒有set方法,去檢視有沒有跟key值相同並且帶有下劃線的成員屬性,如果有的話,就給帶有下劃線的成員屬性賦值,
-
如果沒有跟key 值相同並且帶有下劃線的成員屬性,還會去找沒有跟key 值相同的成員屬性,如果有直接給它賦值,
-
如果沒有直接報錯
2. button 顏色顯示系統tineColor的解決辦法
-
button 顏色顯示系統tine的解決辦法
-
在
Assets
中設定圖片的Render為Orignnal Image -
使用程式碼設定
imageWithRenderingMode:
UIImage *image = [UIImage imageNamed:@"aimage"]; UIImage *oriImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 複製程式碼
3.導航條隱藏
- 導航條隱藏
- 導航條或者導航條上的控制元件設定透明度是沒有效果的 self.navigationController.navigationBar.alpha = 0;
- 如果需要設定透明背景,設定導航條背景,
BackgroundImage
必須預設模式是UIBarMetricsDefafault - 當背景圖片設定為nil 的時候,
ShadowImage
系統會自動生成一張半透明的圖片,設定為導航條背景
4.Transform
- 使用make 是相對於最原始的位置做的形變
- 使用CGAffineTransformTranslate 是相對於上一次做形變
5.view 的任意拖拽
-
在touchMoved a 方法裡,計算XY方向的偏移量,設定view的transform,
6.事件傳遞:
- 如果父控制元件不能接收觸控事件,那麼子控制元件就不可能接收到觸控事件,
- 如何找到最合適的控制元件來處理事件、
- 判斷自己能否接收觸控事件
- 觸控點是否在自己身上
- 從後往前便利子控制元件,重複前面的2個步驟
- 如果沒有符合條件的子控制元件 ,那麼就自己最適合處理
7.tableView 的縮排處理
-
取消自動調整滾動檢視的間距,- VC+NAV 會自動調整tanleView的contentInset
-
如果設定了tableview的縮排,記得設定scrollIndictiorInsets;
-
navBar 相融的問題,不顯示在底部,從隱藏到顯示,控制animated 就是可以的
8.實現圖片的,下拉放大,上推隱藏,直至隱藏漸變顯示導航條
-
放大程式碼實現 下拉,contentOffset 是負值
-
向上移動的時候,當超過64的時候,不再移動
-
動態變化設定圖片的透明度
-
根據推的長度,控制顯示狀態列是黑色還是白色
-
如果不設定背景顏色,拖拽手勢返回的時候,右上角會有黑色,設定導航欄的背景色是白色
9.實現圖片的壓縮處理圓角處理(加入執行緒)
-
使用
CoreGraphisc
是耗時操作,講圖片處理放在全域性佇列中,結果放在主執行緒中-(void)cz_coreImageWithSize:(CGSize)size fillColor:(UIColor*)fillColor complection:(void(^)(UIImage*image))complection; 複製程式碼
-
具體實現如下
10.Xcode 使用
-
- 替換已有類名: .h選中要改的類名 ---> 選單欄選中 Edit ---> Refactor ---> Rename
-
- 替換已有類名:
-
- Xcode 修改應用的名字 找到 TARGETS 中的 Build Setting , 搜尋 Product Name->雙擊修改