自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 ReplayKit 录屏功能实践与坑点总结

最近有录制屏幕的需求,因此研究了一下这个框架,在实际应用中碰到了不少坑点,在这里总结一下心得1.使用方法ReplayKit录屏主要使用RPScreenRecorder类,这是一个单例,可以通过以下方法获取[RPScreenRecorder sharedRecorder]从苹果在iOS9推出框架以来到iOS11一共推出了3个录屏的启动方法iOS 9:- (void)sta...

2019-09-15 22:34:07 5439

原创 MacOS和iOS开发使用自定义字体的方法

Mac OS 开发添加自定义字体:将字体文件(XXX.ttf)导入到工程中工程 -> Target -> Build Phase -> + -> New Copy Files Phase,将字体添加进下面的列表中info.plist 中新建键值: Ap...

2019-06-30 21:01:37 644

原创 Objective-C 学习记录 - 37

1.UINavigationItem导航栏的内容由栈顶控制器的navigationItem属性决定常用属性://左上角的返回按钮@property (nonatomic, retain) UIBarButtonItem *backBarButtonItem;//中间的标题视图@property (nonatomic, retain) UIView *titleView;//中间的...

2018-10-11 20:19:43 173

原创 Objective-C 学习记录 - 36

1.UINavigationController导航控制器的创建UINavigationController是一种特殊的控制器,用于管理多控制器之间的跳转,常见的例子是iPhone的设置UINavigationController的使用步骤:(1).初始化UINavigationController(2).设置UIWindow的rootViewController根控制器为UINavig...

2018-10-10 10:40:13 246

原创 Objective-C 学习记录 - 35

1.UITextField代理方法://是否允许开始编辑,返回否则不允许编辑-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField;//开始编辑时调用(成为第一响应者became first responder)-(void)textFieldDidBeginEditing:(UITextField *)textFiel...

2018-09-26 19:48:49 286

原创 Objective-C 学习记录 - 34

1.ios应用启动完整过程执行main函数执行UIApplicationMain函数,创建UIApplication对象,并设置UIApplication的代理(AppDelegate)开启事件循环(主运行循环,死循环:保证应用程序不退出)加载Info.plist(根据配置加载界面)应用程序启动完毕,开始监听系统事件(AppDelegate)系统加载界面过程:根据Info.pli...

2018-09-19 21:40:48 173

原创 Objective-C 学习记录 - 33

1.loadView方法作用:创建控制器的view,当控制器的view第一次使用的时候调用loadview方法底层实现:判断当前控制器是从storyboard还是xib加载的,并将storyboard或xib中指定的view设置为控制器的view,若既没有storyborad也没有xib,则会创建一个空白view重写loadView方法可以自己指定加载的view,在某些情况下可以节...

2018-09-18 22:05:42 120

原创 Objective-C 学习记录 - 32

1.UIApplicationUIApplication是系统最先创建的对象,在程序中有且只有一个实例UIApplication常用属性:@property(nonatomic) NSInteger applicationIconBadgeNumber;  //应用程序图标右上角的红色提醒数字@property(nonatomic, getter=isNetworkActivityIn...

2018-09-14 23:16:49 141

原创 Objective-C 学习记录 - 31

1.LaunchScreen.storyboardLaunchScreen.storyboard可以用来显示App启动界面,其底层实现的方法是将放在其控制器中的所有内容转化为一张图片(类似截图)并在启动界面显示这张图片,因此直接放入Launchscreen文件中的控件是无法直接发挥作用的在工程文件的General - App Icons and Launch Images中可以设置启动界面...

2018-09-13 22:35:11 162

原创 Objective-C 学习记录 - 30

1.代理的使用方法定义协议:/** * 定义协议,将需要实现的方法列在其中 * 协议名字最好为类名+Delegate,方法名最好以类名开头 * 其中<NSObject>为基协议,遵守本协议时则同时获得基协议中的方法 */@protocol tableViewCellDelegate <NSObject>- (void)tableViewCellDi...

2018-09-11 21:28:58 154

原创 Objective-C 学习记录 - 29

1.NSNotification通知的基本使用发布通知:/** 创建一个名为notificationName的通知,发送者为self */NSNotification *notification = [NSNotification notificationWithName:@"notificationName" object:self];/** 发布通知 */[[NSNotifi...

2018-09-10 22:54:51 124

原创 Objective-C 学习记录 - 28

@property (assign, nonatomic, getter=isChecked) BOOL checked;@property (assign, nonatomic) CGRect checkIconFrame;- (void)setDataModel:(UserInfoDataModel *)dataModel{ if (_dataModel.isChecke...

2018-09-06 22:28:34 147

原创 Objective-C 学习记录 - 27

1.UITableView批量删除首先设置tableview://允许在编辑模式中开启多选功能self.tableView.allowsMultipleSelectionDuringEditing = YES;设置两个按钮,一个名为multipleDelete点击后进入编辑模式,另一个名为delete点击后删除在编辑模式中选中的cell行- (IBAction)multipl...

2018-09-05 22:05:13 134

原创 Objective-C 学习记录 - 26

1.tableview修改和刷新数据的方法数据的修改应该修改模型中的数据,对于tableview只需要刷新数据即可全局刷新:[self.tableview reloadData];  //这个方法会重载全部的cell的数据局部刷新:NSArray *indexPaths = @[[NSIndexPath indexPathForRow:0 inSection:0]];[s...

2018-09-03 22:56:40 130

原创 Objective-C 学习记录 - 25

1.获取文字尺寸的方法单行文字:NSDictionary *nameAttr = @{NSFontAttributeName : [UIFont systemFontOfSize:15]};   //将文字的字体大小等存入字典CGSize nameSize = [self.phoneModel.name sizeWithAttributes:nameAttr];  //通过字典提供的属性...

2018-08-31 22:48:34 206

原创 Objective-C 学习记录 - 24

1.UITableView索引条的设置/** 按顺序返回各组的索引,实现以下方法则会自动创建索引条 */-(NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView{    return [_phoneGroups valueForKeyPath:@“header”];}/...

2018-08-29 21:20:04 167

原创 Objective-C 学习记录 - 23

1.实现cellForRowAtIndexPath方法的标准方法-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString *ID = @“phone”;  //定义一个重用标识    [tableVie...

2018-08-23 21:27:43 240

原创 Objective-C 学习记录 - 22

1.UITableView的delegate方法 /** 选中了某一行cell就会调用这个方法 */-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    NSLog(@“section:%ld,row:%ld is selected” ,indexP...

2018-08-22 20:18:03 149

原创 Objective-C 学习记录 - 21

1.UITableView的常用属性//设置tableView每一行cell的高度tableview.rowHeight = 100;//设置tableView每一组的头部高度tableView.sectionHeaderHeight = 80;//设置tableView每一组的尾部高度tableView.sectionFooterHeight = 80;//设置分割线的颜色...

2018-08-22 20:17:24 193

原创 Objective-C 学习记录 - 20

1.UITableView 展示数据的方法需要设置UITableViewDataSource协议,UITableView会自动向dataSource请求数据self.tableView.dataSource = self;/** 告诉tableView一共有多少组数据 */-(NSInteger)numberOfSectionsInTableView:(UITableView *)t...

2018-08-18 22:01:06 279

原创 Objective-C 学习记录 - 19

1.autolayout实现UILabel的包裹文字位置约束可以使UILabel在不换行的情况下自动包裹文字宽度约束可以确定文字能显示的最大宽度2.屏幕适配、自动布局总结:autoresizing:在storyboard中,可以使用6根线确定6种特定约束autolayout:约束和参照,警告和错误一个NSLayoutConstraint对象就是一个约束代码中实现自动布局时必须先...

2018-08-16 22:32:10 111

原创 Objective-C 学习记录 - 18

1.autoresizingMaskview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin//UIViewAutoresizingNone   //无//UIViewAutoresizingFlexibleLeftMargin   //到父控件的左边的距离是自适应伸缩的//UIViewAutoresizingFlexi...

2018-08-15 22:39:06 174

原创 Objective-C 学习记录 - 17

1.UIScrollView的分页与UIPageControl//开启scrollView的翻页功能,默认以scrollView的size为1页scrollView.pagingEnabled = YES;通过scrollView的delegate实现控制pageControl显示页码的两种常用方法:/** 使pageControl的页码显示为目前显示面积最多的页码 */-(v...

2018-08-14 23:58:54 105

原创 Objective-C 学习记录 - 16

1.UIScrollView的属性和方法(常用)scrollView.bounce //BOOL contentSize边缘的弹簧效果scrollView.alwaysBounceVertical  //BOOL 纵向边缘的弹簧效果(不管有没有设置contentSize,可用来做下拉刷新效果)scrollView.alwaysBounceHorizontal  //BOOL 横向边缘的弹...

2018-08-13 21:35:33 155

原创 Objective-C 学习记录 - 15

1.KVC:Key Value Coding对一个属性或变量赋值的方法除了使用点语法,也可以使用KVC方法:Name即设定的person类中的属性person.dog.name = @“旺财”;/** forKeyPath包含了所有forKey的功能,forKeyPath:可以进行内部的点语法,层层访问内部的访问forKey:或者forKeyPath中的属性名如果写错,编译器会报...

2018-08-10 22:49:59 195

原创 Objective-C 学习记录 - 14

1.当view通过xib加载时,通过initWithCoder:方法初始化,而不能通过init和initWithFrame:方法如果xib中的子控件是通过xib创建(addSubView的目标是某个self.xxx),默认处于未唤醒状态,唤醒的方法:重写awakeFromNib方法,将创建子控件的代码放到这个方法中2.UIButton改变内部图片文字位置的办法:自建一个继承与UIButt...

2018-08-09 22:28:09 131

原创 Objective-C 学习记录 - 13

1.给类属性设置数据的方法:重写set方法、传入模型2.在自定义类时应考虑全面,一些初始化操作需要重写时应注意系统自带的其他init方法是否有效对于控件,使用init和initWithFrame:方法时都会调用initWithFrame方法,因此重写的initWithFrame:方法可以同时响应init与initWithFrame两个方法。但使用initWithFrame方法时不会调用in...

2018-08-08 22:44:40 203

原创 Objective-C 学习记录 - 12

1.  plist:属性列表文件,可用于存放需要经常修改和读取的属性通过代码创建plist文件的方法:数组或字典对象使用writeToFile方法即可写入到plist文件通过代码导入plist文件的方法:数组对象使用arrayWithContentsOfFile方法dataArr = [NSArray arrayWithContentOfFile:@”info.plist” ofTy...

2018-08-07 22:17:16 162

原创 Objective-C 学习记录 - 11

1.监听按钮的点击addTarget方法[Button addTarget:**)Target:目标(让谁做事情)Action:方法(做什么事情)Events:事件2.UIButton、UIImageView、UILabel的选择UIButton特点:-既能显示文字,又能显示图片-长按高亮的时候可以切换图片和文字-可以通过addTarget方法监听点击UIImageView...

2018-08-06 22:28:07 191

原创 Objective-C 学习记录 - 10

1.播放音乐使用AVFoundation框架(#improt)播放的内容放到AVPlayerItem实例中,播放时创建AVPlayer的播放器实例2.使用NSBundle可以访问自己项目资源包的内容3.常用的颜色表示方法有32位、24位和12位,其中12位的颜色多用来表示纯色和灰色。位数越少,可表示的颜色越少,但渲染占用的资源也越少。4.UIButton的Type:System...

2018-08-03 22:37:22 120

原创 Objective-C 学习记录 - 9

1.结构体初始化的一种方法:以CGRect为例:view.frame = (CGRect){{x,y},{width,height}};view.frame = CGRectMake(x,y,width,height);//以上两种初始化的设置方式效果完全一样2.UIImageView的常用初始化方式,initWithFrame、initWithImage3.UIImageV...

2018-08-02 21:53:25 180

原创 Objective-C 学习记录 - 8

1.UILabel常用属性:@property (nonatomic, copy) NSString *text;//显示的文字@property (nonatomic, retain) UIFont *font;//字体@property (nonatomic, retain) UIColor *color;//文字颜色@property (nonatomic) NSTextA...

2018-08-01 22:32:17 132

原创 Objective-C 学习记录 - 7

1.只要控件有父控件,就可以移除[self.view removeFromSuperview];这行代码在viewDidAppear方法中可以生效,因为此时self.view有父控件UIWindow2.viewWithTag可以通过tag调用控件,但是效率很低(递归遍历),而且大量使用tag容易混乱,因此应尽量避免使用,尤其是在复杂场景中    2.1当同时有多个同类控件时为了方便区分可...

2018-07-31 22:53:10 115

原创 Objective-C 学习记录 - 6

2018.7.30 ViewController是视图控制器,它用于管理app中的view,本身并不可见;凡事继承自UIViewController类的对象都是控制器 控件是一个容器,它可以存放其他控件,父子控件之间通过superView和subViews的方法相互访问 IBAction和IBOutlet修饰与控件关联的方法/属性,一些控件既可以关联属性也可以关联方法,一些控件只能关联...

2018-07-30 23:07:05 115

原创 Objective-C 学习记录-5

2018.7.27 数组的定义和使用 数组分为不可变数组和可变数组NSArray *array= [NSArray arrayWithObjects:@“xxx”, @“ddd”, mycl, nil]; NSMutableArray<UIView *> *mutableArray;[mutableArray addObject:view]; a...

2018-07-27 22:22:30 107

原创 Objective-C 学习记录-4

2018.7.26 今天主要是实现小黑块的随机掉落涉及 NSTimer、UIView类方法的使用和随机数的使用  用arc4random产生0 至 x-1 之间的随机整数:arc4random() % x switch语句的用法:switch (expression){ case value1: program statement...

2018-07-26 22:00:41 106

原创 Objective-C 学习记录-3

Objective-C实现在view上的简单动画和手势响应: #import "ViewController.h"@interface ViewController ()@property (strong, nonatomic) UIView *bView;@end@implementation ViewController- (void)viewDidLoad {...

2018-07-25 22:46:58 120

原创 Objective-C 学习记录-2

Objective-C 实现简单动画的步骤: #import "ViewController.h"@interface ViewController ()@property (strong, nonatomic) CALayer *ALayer; //定义一个名为ALayer的图层@end@implementation ViewController- (void)v...

2018-07-24 22:41:34 196

原创 Objective-C 学习记录 - 1

Xcode中可以使用CABasicAnimation类实现动画效果    CABasicAnimation *strokeAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];    strokeAnimation.fromValue = @0.0;    strokeAnimation.toValue = ...

2018-07-23 22:57:44 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除