![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios开发
superyuan567
这个作者很懒,什么都没留下…
展开
-
移动端热门跨平台方案对比
WEEX:WEEX是由阿里巴巴研发的一套移动平台技术框架,最初是为了解决移动开发过程中频繁发版和多端研发的问题而开发的,使用WEEX提供的跨平台技术,开发者可以很方便地使用web技术来构建具有可扩展性的原生性能体验的应用,并支持在Android,iOS,和WEB等多平台上 部署。具体来说,当在项目中集成WeexSDK之后,就可以使用JS和主流前端框架来开发移动应用。同时,WEEX框架的结构是解...原创 2020-02-24 10:29:03 · 1038 阅读 · 0 评论 -
UITabBarViewController的基本使用
UITabBarController的基本使用初始化UITabBarController设置UIWindow的rootViewController为UITabBarController根据具体情况,通过addChildViewController方法添加对应个数的子控制器UITabBarViewController添加子控制器的方法//添加单个子控制器-(void)addChildVi...原创 2020-02-22 18:17:05 · 539 阅读 · 0 评论 -
通知机制
通知的发布:通知中心:NSNotificationCenter每一个应用程序都有一个通知中心对象,程序一启动就会有一个通知中心对象。专门负责不同对象之间的消息传递一个完整的通知一般包含3个属性-(NSString *)name; //通知的名称-(id)object; //通知的发布者-(NSDictionary *)userInfo; //通知发...原创 2020-02-20 15:28:10 · 173 阅读 · 0 评论 -
父子控制器
多控制器管理UINavigationControllerUITabBarController父子控制器模仿上述两种控制器-(IBAction)clickScoiety:(id)sender{ /*1.控制器每次都创建2.控制器的view每次都加上去,点一下添加一次3.控制器的view不能处理业务逻辑,控制器是局部变量这里为什么view在,viewController却不...原创 2020-02-18 16:57:44 · 188 阅读 · 0 评论 -
super,class,superClass区别
-(void)test{ //获取当前方法调用者的类 NSLog(@"%@",[self class]); //当前方法调用者的父类 NSLog(@"%@",[self superclass]); //super:是一个编译指示器,就是给编译器看的,不是一个指针 //只要编译器看到这个标志,就会让当前对象去调用父类的方法,本质还是当前对象在调...原创 2020-02-18 13:21:36 · 1484 阅读 · 0 评论 -
KVC和KVO
1.什么是KVC?KVO?KVC:Key Value Coding (键值编码)//Person.h文件@property (nonatomic,copy) NSString *name;@property (nonatomic,assign) int age;//常规赋值Person *p = [[Person alloc] init];p.name = @"zs";p.ag...原创 2020-01-01 17:43:15 · 97 阅读 · 0 评论 -
runtime
一、什么是RunTime?RunTime简称运行时,OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的就是消息机制。对于C语言来说,函数的调用在编译的时候回决定调用哪个函数。对于OC来说,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要生命...原创 2020-02-17 16:28:17 · 105 阅读 · 0 评论 -
UIWebView使用
什么是UIWebView?UIWebView是iOS内置的浏览器控制常用方法@property(weak,nonatomic) IBOutlet UIWebView *webView;-(void)viewDidLoad{ [super viewDidLoad]; }-(void)test{ //加载网页 [self.webView loadRequest...原创 2020-02-16 14:12:09 · 276 阅读 · 0 评论 -
位移枚举
枚举写法1:typedef enum{ EAST, SOURTH;}LOCATION枚举写法2:可以定义类型typedef NS_ENUM(NSInteger,NSInteger){ UP, TOP,};枚举写法3:位移枚举typedef NS_OPTION(NSInteger,NSInteger){ UP = 1 <<0 //左移1...原创 2020-02-14 15:54:54 · 244 阅读 · 0 评论 -
NSCache的使用
本篇文章首先会详细讲解NSCache的基本使用,NSCache是Foundation框架提供的缓存类的实现,使用方式类似于可变字典,由于NSMutableDictionary的存在,很多人在实现缓存时都会使用可变字典,但NSCache在实现缓存功能时比可变字典更方便,最重要的是它是线程安全的,而NSMutableDictionary不是线程安全的,在多线程环境下使用NSCache是更好的选择。接着...原创 2020-02-14 15:30:51 · 476 阅读 · 0 评论 -
控制器View的生命周期
1. viewDidLoad当loadView将view载入内存中,会进一步调用viewDidLoad方法来进行进一步设置。此时,视图层次已经放到内存中,通常,我们对于各种初始化数据的载入,初始设定、修改约束、移除视图等很多操作都可以这个方法中实现。视图层次(view hierachy):因为每个视图都有自己的子视图,这个视图层次其实也可以理解为一颗树状的数据结构。而树的根节点,也就是根视图...原创 2020-02-11 11:17:26 · 111 阅读 · 0 评论 -
多控制器开发UINavigationController
多控制开发一个iOS的app很少只由一个控制器组成,除非这个app及其简单当app中有多个控制器的时候,我们就要对这些控制器进行管理有多个view时,可以用一个大的view去管理1个或者多个小view控制器也是如此,用1个控制器去管理其它多个控制器比如,用1个控制器A去管理3个控制器B,C,D,那么控制器A就称为控制器B,C,D的父控制器,控制器B,C,D就称为控制器A的子控制器为了...原创 2020-02-11 10:33:29 · 150 阅读 · 0 评论 -
UIPickView的基本使用
UIPickView的基本使用//UIPickView和TableView一样,想要展示数据也要设置数据源和代理//设置数据源self.pickView.dataSource = self;//设置代理self.pickView.delegate = self;//遵守数据源,代理协议:@interface ViewController ()<UIPickerViewDa...原创 2020-02-10 17:20:55 · 326 阅读 · 0 评论 -
控制器如何加载view
控制器如何加载View///> app 启动完成 程序准备开始运行 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] init]; UIV...原创 2020-02-10 16:32:21 · 112 阅读 · 0 评论 -
通过storyboard加载控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] init]; UIStoryBoard *storyboard = [UIStoryBoard storyb...原创 2020-02-10 17:21:19 · 122 阅读 · 0 评论 -
UIWindow
UIWindow是什么?UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindowiOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow也就是说,没有UIWindow,完全看不...原创 2020-02-10 15:03:25 · 163 阅读 · 0 评论 -
UIApplication
什么是UIApplication?UIApplication对象时应用程序的象征一个应用程序只有一个UIApplication对象,而且是单例的。通过[UIApplication sharedApplication]可以获得这个单例对象一个iOS程序启动后创建的第一个对象就是UIApplication对象利用UIApplication对象,能进行一些应用级别的操作UIApplicati...原创 2020-02-10 10:34:19 · 132 阅读 · 0 评论 -
UITableView的基本使用
UITableView基本使用展示多组数据#import "ViewController.h"@interface ViewController () <UITableViewDataSource>@property (nonatomic, weak) IBOutlet UITableView *tableView;@end@implementation ViewContr...原创 2020-02-08 18:48:45 · 190 阅读 · 0 评论 -
Autoresizing,Autolayout
Autoresizing,Autolayout,size class之间的关系1.Autoresizing和Autolayout两者之间不兼容,若想使用Autoresizing就不能使用Autolayout2.若想使用size class就必须支持AutolayoutAutoresizing在代码中的使用子控件相对于父控件的变化UIView *redView = [[UIView all...原创 2020-02-04 18:11:36 · 155 阅读 · 0 评论 -
常见控件的事件监听方式
1.代理UIScrollView,UITextField等控件使用代理的方法监听事件//简化代码UIScrollView *scrollView = [[UIScrollView alloc] init];//首先控制器应该遵守UIScrollViewDelegate协议scrollView.delegate = self; //设置scrollView的代理2.addTarg...原创 2020-01-31 16:54:56 · 337 阅读 · 0 评论 -
UIScrollView
UIScrollView的基本使用将需要显示的内容添加到UIScrollView中设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动的范围//ViewController.m#import "ViewController.h"@interface ViewController ()//连线@property (non...原创 2020-01-31 16:04:11 · 212 阅读 · 0 评论 -
xib基本使用
Xib和storyBorad区别和共同点共同点:1.都用来描述软件界面2.都用Interface Builder工具来编译3.本质都是转换成代码去创建控件不同点:1.Xib是轻量级的,用来描述局部的UI界面2.Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系加载Xib//ViewController.h@interface ViewC...原创 2020-01-17 14:57:38 · 304 阅读 · 0 评论 -
自定义控件
方式1:利用init和layoutSubview结合创建子控件//XMGShopView.h@interface XMGShopView@property (nonatomic,weak) UIImageView *imageView;@property (nonatomic,weak) UILabel *titleLabel;@end//XMGShopView.m@interfa...原创 2020-01-16 19:40:15 · 92 阅读 · 0 评论 -
UIButton的使用
1.UIButton在代码中的使用及监听点击事件基本使用://创建一个按钮//注意:设置按钮类型只能在初始化的时候设置,因为类型为只读类型UIButton *button = [[UIButton alloc] init];UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; //设置按钮的类型//设置fr...原创 2020-01-14 21:25:43 · 176 阅读 · 0 评论 -
property修饰符详解
1.关于@propertyproperty是编译器指令,由property原创 2020-01-01 21:51:02 · 450 阅读 · 0 评论 -
本地存储数据
1.什么是plist文件直接将数据写在代码里,不是一种合理的做法,如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展型低因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据,如果要变动数据,直接修改数据文件即可,不用修改代码一般可以使用属性列表文件存储NSArray或者dictionary之类的数据,这种“属性列表文件”的扩展名是plist,因此也称为“...原创 2020-01-01 17:10:52 · 480 阅读 · 0 评论 -
iOS懒加载
//懒加载//作用://1.用到的时候再加载//2.只加载一次//3.全局都可以用//重写get方法-(NSArray *)dataArr{ if(_dataArr == nil){ self.dataArr = @[ @{@"name": @"danjinbao"}, ] } return _dataArr;}懒加...原创 2019-12-31 12:46:27 · 79 阅读 · 0 评论 -
iOS中播放音效
#import <AVFoundation/AVFoundation.h>//创建播放器NSUrl *url = [[NSBundle mainBundle] URLForResource:@"mySong1.mp3", withExtension:nil];AVPlayerItem *playerItem= [[AVPlayerItem alloc] initWithUrl:...原创 2019-12-30 21:25:25 · 108 阅读 · 0 评论 -
UIView、UILabel、UIImage基本控件的使用
1.UIView//UIView常见的属性@property(nonatomic,readonly) UIView *superview;@property(nonatomic,readonly,copy) NSArray *subviews;//尽量少使用tag//1.效率低//2.容易乱@property(nonatomic) NSInteger tag;@property(n...原创 2019-12-29 20:06:09 · 147 阅读 · 0 评论 -
iOS模拟器的使用
1.command+shift+H 回到主页面2.command+shift+H连按两下 查看后台应用3.hardware 横屏、竖屏、摇一摇等功能4.command+1、command+2、command+3、command+4、command+5 模拟器的屏幕大小5.command+shift+k 调出键盘...原创 2019-12-29 15:33:36 · 391 阅读 · 0 评论