iOS学习笔记

来源:互联网 发布:动态图下载软件 编辑:程序博客网 时间:2024/05/08 02:19
一、开篇综述
1、iPhone/iPad/iPod Touch/Apple TV/Mac book
2、特性:HomeKit/HealKit/iCloud Driver
3、Xcode xib pib Objective-C Swift
4、- (NSInteger)numberOfRowsInSection:(NSInteger)section;


二、第一个iOS应用程序
1、iOS/watchOS/tvOS/macOS(Application(Master-Detail Application/Tabbed Application/SingleView Application/Page-Based Application/Games)/Framework & Library(CocoaTouch Framework/CocoaTouch Static Library))s
2、HelloWorld(HelloWorld/HelloWorldTests/HelloWorldUITests/Products)
3、AppDelegate : UIResponder <UIApplicationDelegate>  ViewController : UIViewController
4、- (BOOL)application:didFinishLaunchingWithOptions:/- (void)applicationDidBecomeActivity:/- (void)applicationWillEnterForeground:/- (void)applicationWillResignActivity:/- (void)applicationDidEnterBackground:/- (void)applicationWillTerminate:
5、- (void)viewDidLoad:/- (void)viewWillAppear:/- (void)viewDidAppear:/- (void)viewWillDisappear:/- (void)viewDidDisappear:/- (void)viewDidUnload:/- (void)didReceiveMemoryWarning:
6、UIApplicationDidFinishLaunchingNotificatioin
7、Not Running -> [Inactive <-> Activity](Foreground) / Inactive <-> Background(Background) <-> Suspended -> Not Running
8、Application does not run in background/UIApplicationExitsOnSuspend
9、CocoaTouch Layer/Media Layer/Core Services Layer/Core OS Layer  CMD + Shift + O


三、UIView与视图
1、UIView:UIWindow/UILabel/UITableViewCell/UIPickerView/UIProgressView/UIActivityIndicaterView/UIImageView/UITabBar/UIToolBar/UINavigationBar/UIBarButtonItem/UIActionSheet/UIAlertView/UIWebView/UIControl/UIScrollView
   UIScrollView:UITextView/UICollectionView/UITableView
   UIControl:UIButton/UISwitch/UISegmentedControl/UIPageControl/UIDatePicker/UITextField/UISlider
2、superview/subviews/window
3、Storyboard(Scene/Segue) IBAction/IBOutlet
4、UITextFieldDelegate/UITextViewDelegate resignFirstResponder - textFieldShouldReturn: - textView:shouldChangeText:inRange:
5、UIKeyboardDidShowNotification/UIKeyboardDidHidNotification [NSNotificationCenter defaultCenter]/addObserver:/removeObserver:
6、UISwitch:isOn/setOn:animated:  slider.value  - loadHTMLString:baseURL/- loadData:MIMEType:textEncodingName:baseURL/- loadRequest:
7、UIWebViewDelegate  ActivityIndicatorView isAnimating/start/stopAnimating UIAlertController/UIAlertAction
8、[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:] 20 44 49


四、iOS多分辨率屏幕适配
1、AutoLayout + Size Class  Constraint
2、资源分辨率 设计分辨率 屏幕分辨率 
3、[UIScreen mainScreen] [UIDevice currentDevice]
4、wCompact/wAny/wRegular * hCompact/hAny/hRegular
5、UIScrollView(contentSize/contentInset/contentOffset)


五、委托协议数据源协议与高级视图
1、UIPickerView/UICollectionView/UITableView
2、UIPickerView (UIPickerViewDataSource/UIPickerViewDelegate) [[NSBundle mainBundle] pathForResource:ofType]; - numberOfComponentsInPickerView:/- pickerView:numberOfRowsInComponent:/- pickerView:titleForRow:forComponent:/- pickerView:didSelectRow:inComponent:
3、集合视图(单元格/节/补充视图/装饰视图)UICollectionView : UIScrollView  UICollectionViewController <UICollectionViewDelegate, UICollectionViewDataSource> UICollectionViewCell/UICollectionViewFlowLayout : UICollectionViewLayout
4、- numberOfSectionsInCollectionView/- collectionView:numberOfItemsInSection/- collectionView:cellForItemAtIndexPath/- collectionView:didSelectItemAtIndexPath/- collectionView:didDeselectItemAtIndexPath


六、表视图
1、表头(节头 单元格 节脚)表脚
2、Plain/Grouped 动态/静态
3、UITableView : UIScrollView / UITableViewController <UITableViewDelegate, UITableViewDataSource> / UITableViewCell / UITableViewHeaderFooterView
4、imageView/textLabel/detailTextLabel
5、添加搜索栏、表节索引、删除、插入、移动、下拉刷新、UIRefreshControl


七、视图控制器与导航模式
1、平铺导航/标签导航/树形导航/模态视图
2、NavigationBar/TabBar相关颜色 
4、UIColor * mainColor = [UIColor colorWithRed:green:blue:125/255.0f alpha:1.0f];
3、UINavigationBar * bar = [UINavigationBar appearance];[bar setTintColor:[UIColor whiteColor]];[bar setBarTintColor:mainColor];[bar setTitleTextAttributes:@{NSForegroundColorAttributesName:[UIColor whiteColor]}];
4、UITabBar * bar = [UITabBar appearance];[bar setTintColor:mainColor];


八、iOS常用设计模式
1、MVC模式/单例模式/委托模式/观察者模式


九、iPhone与iPad应用开发的差异
1、API:UIPopoverController/UISplitViewController
2、导航模式:树形导航和模态视图有所有同
3、分层架构设计
4、UIPopoverController/UIPopoverControllerDelegate -presentPopoverFromRect:inView:permittedArrowDirections:animated:/-presentPopoverFromBarButtonItem:inView:permittedArrowDirections:animated:/-dismissPopoverAnimated:/popoverVisible/popoverArrowDirection
5、SelectViewController * popoverViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SelectViewController"];
   popoverViewController.title = @"选择颜色";UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:popoverViewController]; self.poc = [[UIPopoverController alloc] initWithContentViewController:nav];
   [self.poc presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
6、UISplitViewController * splitViewController = self.splitViewController;
NSArray * viewControllers = [splitViewController viewControllers];
self.detailViewController = [viewControllers lastObject];
_blueViewController = [self.storyboard inistantialViewControllerWithIdentifier:@"BlueViewController"];
[self.view addSubview:_blueViewController.view];


十、iOS分层架构设计
1、设计模式:所谓设计模式就是在某种情景下针对某问题的某种解决方案;可扩展性/可复用性/可维护性
2、分层架构设计 Layer:信息系统层-》数据持久层-》业务逻辑层-》表示层
3、表示层:UIKit(UIView ViewController)Framework 业务逻辑层:封装类 数据持久层:SQLiteAPI CoreData HTTP 信息系统层:SQLiteDB 文件系统 云服务 .xcodeproj .xcworkspace
4、工作空间 多工程 多Target 相互依赖 静态链接库(编译进程序) 动态(不编译进去) 静态链接库中不能包含swift代码 框架
5、组(PresentationLayer/BusinessLayer/PersistenceLayer(dao/domain))  Model/View/Controller Resources/Images


十一、数据持久化

1、plist文件、属性列表和键值编码、SQLite3、CoreData、文件系统、NSUserDefaults


十二、应用程序设置
1、设置:不经常变化;配置:经常变化
2、Settings Bundle 包文件 Settings.bundle Root.strings Root.plist
3、PSGroupSpecifier/PSTextFieldSpecifier/PSTitleValueSpecifier/PSSliderSpecifier/PSToggleSwitchSpecifier/PSMultiValueSpecifier/PSChildPaneSpecifier
4、NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; integer/float/double/bool/string/objectForKey:


十三、国际化
1、国际化I18n 本地化L10n
2、文本信息 xib和故事板文件 资源文件
3、本地代号.lproj = 语言代号+国家(地区)代号.lproj Base Internationalization
4、文本信息:InfoPlist.strings(CFBundleDisplayName)/Localizable.strings("key" = "value"/NSLocalizedString(@"", @""))
5、xib和故事板文件:Main.strings("ObjectId.property" = ""/NSLocalizedString(@"", @""))
6、资源文件:NSBundle * bundle = [NSBundle mainBundle]; NSString * path = [bundle pathForResource:ofType:];
0 0
原创粉丝点击