one day
通過stroybod加載.png
圖片命名通過偏移量scrollview.png
加載到控制器.png
啟動圖片.png
EF3D7750B27A73D098F72E0D34169312.jpg
two day
- 自定義Tabbar用UIview里面的數(shù)組 NSArray(UITabbarItem) 用一個數(shù)組 在外邊傳進來 里面是UITabbarItme元素
tabbar尺寸.jpg
把tabbar當一個對象添加到一個數(shù)組中.jpg
如上.jpg
UITabba屬性.png
導航條屬性必須用默認的 其他都是透明的.png
-
統(tǒng)一設置導航條的方法(UINavigationBar appearance)以及當前類或子類第一次
統(tǒng)一設置導航條的方法(UINavigationBar appearance)以及當前類或子類第一次.png -
另一種統(tǒng)一設置導航條的方法
另一種統(tǒng)一設置導航條的方法.png
two day
nowlaydege.png
button自適應尺寸.png
pch路徑.png
分類的里面聲明方法注意事項.png
圖片分類之原始圖片.png
three day
蒙版
- 如果一個控制器默認從xib加載,控件的尺寸默認跟xib一樣大
- 把結構體包裝成對象【NSValue valueWithCGrect:CGZero】
- 取消xib的自動布局
- 修改父控件的frame,并不會影響里面的子控件- 如果需要修改子控件的frame导饲,設置子控件的尺寸隨著父控件的改變而改變吱涉。
- 如果用translation 修改形變捶枢,值為0 時直接消失庸疾,可以減小到0.01叙赚;
- 把一個控件從一個位置移動到另一個位置赋铝,有兩種方法:
- 1 可以修改frame 泼菌,center 中心點
- 2可以用translation 去修改scale,translate(修改x,y值)
- 少耦合
- 可以用block 傳值,像UIView animationDuration complete:
block深層理解.png
從xib加載一個空間尺寸默認和它一樣大.png
方法傳參block.png
主窗口.png
20171026224019.png
20171026213554.png
four day
- 拋異常
- 下拉動畫
- 計算行數(shù) rows = (count -1)/cols + 1
bool屬性取反.png
計算當前總行數(shù).png
拋異常.png
translation動畫.png
five day
- 快捷鍵 commond + optiontal + enter == 跳轉到相應的控制器
- 快捷鍵 commond + optiontal + 等號 == 更新約束
- 通過storyboard 加載控制器 storyboard 箭頭
- 在xib或者storyboard中只有uiimageview 可以用拉伸方法 strech琅关。 按鈕(button)不可以用沒有效果 x= 0.5,y= 0.5,w= 0,h = 0; 0 0 表示一個像素煮岁。
改變button內部圖片和label的位置 精髓.png
獲取button當前圖片.png
通過storyboard加載view controller.png
在xib或者storyboard中拉伸image view.png
重寫,自定義控制器view.png
five day
- 獲取版本號:info.plist 右擊sourcecode看源文件涣易,取出對應的key.
- 封裝業(yè)務邏輯類画机。存儲,rootVC選擇跟控制器
- [NavigationController alloc ]initWithRootViewController --》方法會調用
push vc 方法--》 pushViewController:(UIViewController*)viewController animated:(Bool)animated - 導航控制器的自定義返回箭頭新症。有兩種方法步氏。
- 導航控制器自帶的返回功能,靠近屏幕左側滑動返回上級頁面徒爹。如果自定義返回功能荚醒,這個功能就會消失。這時需要取消導航控制器觸摸的一個代理瀑焦。
自定義設置導航控制器返回箭頭以及自帶返回功能.png
跳轉rootvc方法.png
還原導航控制器返回共能.png
導航欄返回箭頭2.png
導航欄返回箭頭1.png
collectionView屬性.png
collectionView init初始化.png
six day
- c語言字符串轉換成oc字符串用@()包裝
- 系統(tǒng)滑動返回
- 用一個delegate 記錄住self.interactivePopGestureRecognizer.delegate;
- 自己代理==自己 self.delegate == self;實現(xiàn)導航控制器的代理方法
- 如果展示的控制器是根控制器腌且,就還原pop手勢代理
self.popDelegate = self.interactivePopGestureRecognizer.delegate;
self.delegate = self;
}
#pragma mark - 導航控制器的代理方法
// 完全展示完調用
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// 如果展示的控制器是根控制器,就還原pop手勢代理
if (viewController == [self.viewControllers firstObject]) {
self.interactivePopGestureRecognizer.delegate = self.popDelegate;
}
}
// self -> 導航控制器
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (self.viewControllers.count != 0) { // 非跟控制器hi
viewController.hidesBottomBarWhenPushed = YES;
// 設置導航條左邊按鈕的內容,把系統(tǒng)的返回按鈕給覆蓋,導航控制器的滑動返回功能就木有啦
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavBack"] style:UIBarButtonItemStyleBordered target:self action:@selector(back)];
// 就有滑動返回功能
self.interactivePopGestureRecognizer.delegate = nil;
}
[super pushViewController:viewController animated:animated];
}
- 自定義滑動返回
- self.interactivePopGestureRecognizer.delegate ==( id target = [objc valueForKeyPath:@"_target"]);
// 取出系統(tǒng)手勢的target對象榛瓮,
// 取出某個對象里面屬性 1.KVC 前提條件:必須知道屬性名 2.運行時
// 遍歷某個類里面所有屬性 Ivar:表示成員屬性
// copyIvarList只能獲取哪個類下面的屬性铺董,并不會越界(不會把它的父類的屬性給遍歷出來)
// Class 獲取哪個類的成員屬性
// count:告訴你當前類里面成員屬性的總數(shù)
unsigned int count = 0;
// 返回成員屬性的數(shù)組
Ivar *ivars = class_copyIvarList([UIGestureRecognizer class], &count);
for (int i = 0; i < count; i++) {
// 取出成員變量
Ivar ivar = ivars[i];
// 獲取屬性名
NSString *ivarName = @(ivar_getName(ivar));
NSLog(@"%@",ivarName);
}
// _targets:屬性名 value
NSArray *targets = [self.interactivePopGestureRecognizer valueForKeyPath:@"_targets"];
id objc = [targets firstObject];
id target = [objc valueForKeyPath:@"_target"];
// 其實 target == self.interactivePopGestureRecgnizer.delegate
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.interactivePopGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];
pan.delegate = self;
[self.view addGestureRecognizer:pan];
#pragma mark - 手勢代理方法
// 是否開始觸發(fā)手勢
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
// 判斷下當前控制器是否是跟控制器
return (self.topViewController != [self.viewControllers firstObject]);
}
- 模型的繼承
-
block循環(huán)利用
block循環(huán)利用問題.png
根據(jù)模型判斷類別.png
模型block.png
模型控制器跳轉類名.png
seven day
導圖.png
modal一個導航控制器.png
QQ截圖20171117212649.png
QQ截圖20171117215527.png
webview加載javasprit.png
獲取路徑的另一種方法.png
路徑.png
解析數(shù)據(jù).png