
IOS 日记
kor.
这个作者很懒,什么都没留下…
展开
-
IOS.UIButton长按事件
//按钮长按 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; //长按时间 longPress.minimumPressDuration = 0.8; [titleButton addGestureRecognizer:longPre.原创 2020-07-27 00:14:21 · 1299 阅读 · 0 评论 -
IOS 搭建CocoaPods环境
搭建CocoaPods环境CocoaPods 是什么?CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。开发 iOS 项目不可避免地要使用第三方开源库,在使用第三方库时,除了需要导入源码,集成这些依赖库还需要我们手动去配置,还有当这些第三方库发生了更新时,还需要手动去更新项目,这就显得非常麻烦。而 CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间,通过 CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成。为原创 2020-07-26 23:48:23 · 297 阅读 · 0 评论 -
IOS 监听scrollerView的位置来实现底部加载
监听scrollerView的位置来实现底部加载//监听tableView的高度来实现下拉刷新-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ if (fabs(scrollView.contentSize.height - scrollView.frame.size.height - scrollView.contentOffset.y) < scrollView.contentSize.height * 0.2) {原创 2020-07-26 23:34:48 · 301 阅读 · 0 评论 -
IOS 模拟器屏幕旋转时会调用的方法
模拟器屏幕旋转时会调用的方法//旋转屏幕时刷新tableView- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ [self.tableView reloadData];}原创 2020-07-26 23:26:06 · 503 阅读 · 0 评论 -
IOS SDautolayout框架学习
SDautolayout框架导入SDautolayout框架 1.cd (需要导入框架的文件) 2.pod init3.然后打开项目文件夹打开里面的Podfile文件4.修改Podfile文件的内容 5.然后回到终端输入指令 5.1pod install 5.2等到install完成再输入pod setup 6.这样就已经成功将SDAutolayout框架导入进文件了解决SDAutolayout框架的#import问题虽然只是导入了SDautolayout框架原创 2020-07-26 23:16:31 · 324 阅读 · 0 评论 -
IOS AFN框架学习
AFN框架POST请求//创建会话管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //拼接 NSString *newstr = [NSString stringWithFormat:@"%@ http://www.mob.com",self.textView.text]; NSDictionary *dict = @{原创 2020-07-26 23:04:24 · 126 阅读 · 0 评论 -
IOS 多图下载程序缓存处理
多图下载程序缓存处理缓存处理有 1.内存缓存(把下载好的image保存到字典中,程序关闭就会删除) 2.磁盘缓存(把图片的NSData数据保存到caches文件上,程序关闭不会删除这里的数据) 3.操作缓存(把下载的操作保存到字典里,避免出现重复下载的情况)多图片下载(多线程处理)//先判断缓存里是否已经下载好这张图片 UIImage *image = [self.icondict objectForKey:status.user.name]; if(image){原创 2020-07-26 22:52:48 · 133 阅读 · 0 评论 -
利用Xcode安装git
利用Xcode安装git1.在Xcode的偏好设置上点击locations,然后安装下面提示的Command Line Tools2.在终端输入:git --version(查看当前的git版本)在终端输入命令:xcode-select–install原创 2020-07-19 23:21:13 · 3526 阅读 · 0 评论 -
[IOS]——九宫图的实现
能够根据图片的数量自动显示对应的view效果图代码实现//首先根据图片的数量返回对应的size-(CGSize)photosSIzetocount:(int)count{ //设置图片的宽高为64,间距为10 //求行数 int rows = 0; if(count%3==0){ rows = count / 3; }else{ rows = count / 3 + 1; } CGFloat photosH原创 2020-06-01 23:39:03 · 173 阅读 · 0 评论 -
[IOS]——根据文本内容返回对应的size或者Rect
//计算高度-(CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxW:(CGFloat)maxW{ //创建一个空字典 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; //设置字号的大小 dict[NSFontAttributeName] = font; //设置最大宽度和最大高度 CGSize maxSize =原创 2020-06-01 23:31:02 · 217 阅读 · 0 评论 -
[IOS]——.json与NSDtat.string互转
因为plist文件里面保存的不能是.json,所以要将它进行转换//.json转成字符串//dict里面装着的是.json数据 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&parseError]; NSString *str = [[NSString alloc] initWithData:jso原创 2020-05-31 23:13:18 · 363 阅读 · 0 评论 -
[IOS]——解决tableView数据刷新时页面上下移的问题
只需要添加三行代码就可以解决//数据刷新时界面不会跳动 self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionFooterHeight = 0; self. tableView.estimatedSectionHeaderHeight = 0;原创 2020-05-31 22:01:18 · 795 阅读 · 0 评论 -
[IOS]——在数组的最前面添加数组
NSRange range = NSMakeRange(0, collectArray.count);NSIndexSet *nsindex = [NSIndexSet indexSetWithIndexesInRange:range];[dataArray insertObjects:collectArray atIndexes:nsindex];原创 2020-05-31 17:58:50 · 2898 阅读 · 0 评论 -
[IOS]——image,string互转
代码//1.0是指图片压缩时不失真//image转成stringNSData *data = UIImageJPEGRepresentation(image, 1.0f); NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];//string转成imageNSData *_decodedImageData = [[NSData原创 2020-05-31 17:53:58 · 494 阅读 · 0 评论 -
[IOS]——在键盘上方添加view
效果图代码 //自己创建一个view(这里我用的是自己定义的picView,换成UIView那些也是一样的) picView *picV = [[picView alloc] init]; picV.frame = CGRectMake(0, 0, self.textView.bounds.size.width, 35); picV.delegate = self; //inputAccessoryView这个是设置填充键盘顶部的内容 //设置在textView原创 2020-05-31 17:32:55 · 1255 阅读 · 0 评论 -
[IOS]——-layoutSubviews的调用时机
layoutSubviews在以下情况下会被调用1、init初始化不会调用layoutSubviews。2、addSubview会调用layoutSubviews。3、设置view的Frame会调用layoutSubviews,前提是frame的值前后发生了变化。4、滚动一个UIScrollView会调用layoutSubviews。5、旋转Screen会调用父UIView上的layoutSubviews事件。6、改变一个UIView大小的时候也会调用父UIView上的layoutSubview原创 2020-05-31 17:28:10 · 501 阅读 · 0 评论 -
[IOS]——利用drawRect方法绘画UITextView的占位字
由于UITextView没有占位字的属性,但如果想要做到像UITextField那样能够显示占位字,那么我们就需要自定义一个类继承于UITextView,在新创建的类上添加占位字属性效果图方法介绍新建一个类继承于UITextView,在新建类的.h文件创建占位字属性(.h文件创建的原因在于要被其他类调用,如果在.m文件里设置那这个属性只是这个类私有的)在这个新建类的.m文件里完善它的方法#import "placeholderview.h"@implementation placeho原创 2020-05-31 16:47:20 · 432 阅读 · 0 评论 -
[IOS]——获取系统相册并且加载图片
效果图这是获取系统相册的代码链接获取系统相册链接下面的是从系统相册中加载出图片#pragma mark - 实现picView的代理方法-(void)clickpicView:(UIButton *)btn{ //拿到获取相册的权限 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]){ UIImagePicke原创 2020-05-31 16:09:21 · 846 阅读 · 0 评论 -
[IOS]——获取系统相册
效果图代码块#pragma mark - 实现picView的代理方法-(void)clickpicView:(UIButton *)btn{ //拿到获取相册的权限 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]){ UIImagePickerController *pic = [[UIImagePickerC原创 2020-05-30 09:35:05 · 1013 阅读 · 0 评论 -
[IOS]——UITextView实现placeholder占位字的实现
首先说明一下TextView和TextField的区别IOS中的UITextView和UITextField都是文本输入控件并都能够调用系统键盘。两者最大的区别是:1、UITextView支持多行输入并且可以滚动显示浏览全文,而UITextField只能单行输入。2、UITextView继承自UIScrollView,UITextField继承自UIView[UIControl]。3、UITextview没有placeholder属性 UItextField有placeholder属性在使用上我原创 2020-05-29 00:02:33 · 492 阅读 · 0 评论 -
[IOS]——设置tableView的footerView
效果图代码实现首先需要新建一个类来存放这个底部view(方法多样,这只是我的做法)介绍一下单独创造一个xib的做法(因为有些类创建时是不能同时创建xib的,就像我上面那个图的类是继承于UIView,需要自己再创建一个xib创建完之后记得要设置这个xib从属于哪个类具体代码.h文件#import <UIKit/UIKit.h>@interface upLoaddata : UIView+(instancetype)setfooter;@end.m文件#impor原创 2020-05-28 23:22:10 · 1605 阅读 · 0 评论 -
[IOS]——新浪微博发微博的实现(纯文字)
微博开放平台的文档介绍https://api.weibo.com/2/statuses/share.json效果图代码实现//https://api.weibo.com/2/statuses/share.json NSMutableString *string = [[NSMutableString alloc] initWithString:@"设置你所需要的参数(详细看上面给出的微博文档)格式为 https://api.weibo.com/2/statuses/share.json?a原创 2020-05-28 22:42:45 · 591 阅读 · 0 评论 -
[IOS]——下拉刷新的实现
这里用到的是UIRefreshControl(这是系统自带的下拉刷新,使用非常方便)效果图代码实现//系统自带的下拉刷新效果 UIRefreshControl *control = [[UIRefreshControl alloc] init]; [control addTarget:self action:@selector(reFreshstatus:) forControlEvents:UIControlEventValueChanged]; //不用自定义frame原创 2020-05-28 22:19:19 · 864 阅读 · 0 评论 -
[IOS]——获取新浪微博的.json数据
这里介绍的是获取当前登陆用户以及关注用户的最新微博微博开放平台的文档介绍https://open.weibo.com/wiki/2/statuses/home_timeline代码实现//先取出最前面的微博ID statusFrame *firststatusF = [self.statusFramesArray firstObject]; //请求的url NSString *string = nil; //先判断是否已经存在数据 if(!firststatu原创 2020-05-28 22:05:05 · 404 阅读 · 0 评论 -
[IOS]——微博开放平台的OAuch2.0授权
详细看转载https://blog.youkuaiyun.com/wangqiuyun/article/details/18309711转载 2020-05-28 21:33:22 · 278 阅读 · 0 评论 -
[IOS]——弹窗的实现
弹窗的实现效果图代码实现self.timer那里只是我自己设置的点击按钮的功能(根据自己需要更改)//设置弹窗 //UIAlertControllerStyleAlert 在视图中间弹出提示框 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"开启定时更新新闻功能?" message:nil preferredStyle:UIAlertControllerStyleA原创 2020-05-28 20:56:21 · 1778 阅读 · 0 评论 -
[IOS]——模糊搜索的实现
模糊搜索的实现(支持拼音搜索,汉字搜索,首字母搜索)搜索是要用到UISearchBar我做出的UISearchBar的效果UISearchBar的代码实现1.//首先要遵守协议@interface weiboViewController ()<UITableViewDelegate,UITableViewDataSource,UISearchBarDelegate>2.//代码的实现//搜索框 self.navigationItem.rightBarButtonItem原创 2020-05-28 20:41:58 · 1134 阅读 · 0 评论 -
[IOS] —— 点击当前控制器View响应的方法
代码块//点击控制器的View自动调用的方法-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ NSLog(@"touchesBegan");}//点击后松开调用的方法-(void)touchesEnded:(NSSet<UITouch *> *)touc...原创 2020-04-29 21:34:59 · 269 阅读 · 0 评论 -
[IOS] —— UIScrollerView的基本属性
代码实现UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"素材1"]]; //拖动scrollerView内部区域时,滚动的并不是scrollerView,而是里面的图片,也可以理解为是contentsie self.scrollerView.contentSize ...原创 2020-04-29 20:40:00 · 238 阅读 · 0 评论 -
[IOS] —— UIScrollerView不能滚动的原因
scrollerView不能滚动的原因//1.没有设置ccontentsiZe//2.设置的contentsiZe的尺寸小于scrollerView的尺寸//3.self.scrollerView.scrollEnabled = NO;NO表示不能滚动//4.self.scrollerView.userInteractionEnabled = NO;userInteractionEnabl...原创 2020-04-29 18:22:32 · 474 阅读 · 0 评论 -
[IOS] —— 声明变量在@interface和@property中的区别
@interface和@implementation部分@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate>@implementation RootViewControlleOC中的类必须包括两部分,interface部分和implemen...原创 2020-04-26 15:15:17 · 252 阅读 · 0 评论 -
[ios] —— [super viewWillAppear:animated]使用原因
简述-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.tableView reloadData];}这句话的意思是:在这个界面即将显示时告诉父类实现viewWillAppear这个方法。这样写的原因:由于父类中有很多成员变量子类是继承到了,那么如果没有写上这句话 [...原创 2020-04-26 14:46:00 · 724 阅读 · 0 评论 -
[IOS] —— 音乐播放器进度条的简单实现
利用定时器,UISlider以及它的响应事件简单实现进度条效果图实现的功能有:1.进度条随着时间的变化自动改变位置2.拖动进度条时,播放器自动播放到对应的点代码实现这个是slider的基本设置@property (nonatomic, retain) UISlider *slider;// 进度条 self.slider = [[UISlider alloc] initW...原创 2020-04-25 22:07:35 · 2248 阅读 · 0 评论 -
[IOS] —— 获取系统音量和获取app音量
获取系统音量iOS的音量控制接口在MediaPlayer库中首先要将该库导入 #import <MediaPlayer/MPVolumeView.h>而MPVolumeView中负责控制音量的是它的子视图MPVolumeSlider,而这个类并未对外公开,所以我们应该将这个不公开的类赋值给能让我们控制的类,那么就需要遍历volumeView的子视图,把它找出来,并赋值给另外一个...原创 2020-04-25 21:43:02 · 1746 阅读 · 0 评论 -
[IOS]——播放器AVPlayer的实现
简述AVPlay既可以用来播放音频也可以用来播放视频,AVPlay在播放音频方面可以直接用来播放网络上的音频。在使用AVPlay的时候我们需要引入头文件#import<AVFoundation/AVFoundation.h>AVPlayer —— 音频播放1. 首先导入头文件 #import<AVFoundation/AVFoundation.h>以及声明属性pla...原创 2020-04-25 17:46:39 · 4966 阅读 · 0 评论 -
[IOS]——判断一个数组是否为空的方法
判断数组是否为空有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出。正确判断NSArray是否为空的方法:用 (!array)if (array != nil && ![array isKindOfClass:[NSNull class]] && array.count !...转载 2020-04-25 16:05:09 · 1354 阅读 · 0 评论 -
[IOS]——字典的快速赋值——[setValuesForKeysWithDictionary]
具体操作使用的方法非常简单Playlist *music = [[self alloc] init];[music setValuesForKeysWithDictionary:dict];这里要求Playlist里面的属性要跟dict里面的key一一对应要注意的问题这种方法虽然简单,但要注意的问题有很多问题一:Playlist里面的属性有与dict中的key不相同的情况:在控制...原创 2020-04-25 15:55:11 · 380 阅读 · 0 评论 -
[IOS]——[UIScrollerView]——将图片裁剪成圆形并实现滚动
效果图:首先将图片裁剪成圆形先介绍一下CALayer1.CALayer(层)是屏幕上的一个矩形区域,在每一个UIView中都包含一个CALayer,CALayer负责UIView的视图显示。2.跟UIView的关系图:其中不暴露给UIView的内容有1,阴影,圆角,带颜色的边框2,3D变换3,非矩形范围4,多级非线性动画。设置图片为圆形的做法layer的介绍在 iOS ...原创 2020-04-24 18:35:11 · 384 阅读 · 0 评论 -
[IOS]——懒加载要注意的问题
问题一——判断是否为空时出现无限循环问题在if判断语句中-if(_musicArray)是为了判断数组是否为空,为空时就加载数据,要注意的是:这里使用( _musicArray下划线的形式,而不是self.musicArray的形式。因为懒加载其实是在重写get方法,那么用self.musicArray那就会无限调用调用get方法)问题二:关于NavigationController页面跳转...原创 2020-04-24 17:00:18 · 890 阅读 · 0 评论 -
[IOS]-视图,控制器生命周期 - ViewDidLoad
viewDidLoad-加载视图viewWillAppear-UIViewController对象的视图即将加入窗口时调用;viewDidApper-UIViewController对象的视图已经加入到窗口时调用;viewWillDisappear-UIViewController对象的视图即将消失、被覆盖或是隐藏时调用;viewDidDisappear-UIViewController对象的视图已经消失、被覆盖或是隐藏时调用;viewVillUnload-当内存过低时,需要释放一些不需原创 2020-04-23 22:00:54 · 398 阅读 · 0 评论