iOS学习笔记
记录iOS学习过程
小溪彼岸
万里长征,日进一步 , 好记性不如烂笔头
展开
-
【XCode问题】aliasSectionNum == sectionNum
今天打了一个旧分支的包抛出了如下错误,之前遇到过时间久远渐渐忘记了,这里记录一下处理过程。转载 2024-12-22 16:04:27 · 81 阅读 · 0 评论 -
【三方SDK】MobLink深度链接
深度链接又名“转载 2024-12-15 11:53:35 · 83 阅读 · 0 评论 -
【iOS特性】Universal Links打开app跳转指定页面
在项目中监听 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler。文件上传完成后,通过浏览器能正常访问。文件内容说明上传成功。转载 2024-12-15 11:30:21 · 376 阅读 · 0 评论 -
【iOS特性】3D Touch - 手搓Live Photo效果
上次对。转载 2024-12-15 09:15:16 · 81 阅读 · 0 评论 -
【iOS特性】3D Touch 预览和弹出
是指用户在手机屏幕上用力按压想要预览的选项,弹出一个可以预览二级页面的预览窗口,可以设置一些快捷的操作选项,以类似的方式呈现出来。最后附上完整代码。注意:对于不支持的设备不会报错,但无法触发注册代理前需要判断设备是否支持对支持的设备再进行注册功能需要实现的两个代理方法预览视图的大小可根据调节,在提供预览的控制器中提供预览菜单数据即可预览菜单也支持概念,点击一个菜单操作会展开其子菜单点击【】会再次弹起子菜单代码量有点多,我放到了github上,需要的自取。转载 2024-12-08 20:19:18 · 70 阅读 · 0 评论 -
【iOS特性】3D Touch主屏交互
是苹果推出的一项屏幕技术,它通过识别用户按压屏幕的力度,提供更丰富的交互体验。转载 2024-12-08 18:46:35 · 120 阅读 · 0 评论 -
基于AttenceTimelineCell的时间轴
主要排序代码如下: 使用冒泡算法进行对日期和时间的排序,在AttenceTimelineCell基础上添加分段:#pragma mark-对日期进行分类- (NSMutableArray *)siftArray:(NSMutableArray *)mArray{ NSMutableArray *resultArray = [NSMutableArray array]; for (原创 2016-04-09 00:54:13 · 1796 阅读 · 0 评论 -
二分法查找元素
二分查找(也叫折半查找),速度快,比较次数少是至今应用比较多的一种搜索算法。下面提供一个方法可以方便调用:- (NSInteger)searchObject:(id)obj inArray:(NSArray *)sortArray{ //二分法查找 NSRange searchRange = NSMakeRange(0, [sortArray count]); NSInte原创 2016-11-30 16:19:18 · 951 阅读 · 0 评论 -
判断UIImageView中图片是否相同
当图片无法获取路径时,如何判断两个图片是否相同呢,是的可以将图片转换为NSData进行比较 方法如下: if ([UIImagePNGRepresentation(imageView1.image) isEqual:UIImagePNGRepresentation([UIImage imageNamed:@"banner1"])]){ imageView1.image = [原创 2016-05-24 17:59:38 · 2819 阅读 · 0 评论 -
UITableView刷新指定section、cell
UITableView有时候需要对特定的section或cell进行刷新,可以尝试以下方法: //刷新特定section NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:7]; [tableview reloadSections:indexSet withRowAnimation:UITableView原创 2016-02-29 13:08:24 · 2316 阅读 · 0 评论 -
UITableView回滚到顶部的几种方法
//***************方法一***************// //回滚到表的最顶端 [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; //***************方法一***************// [self.tableView setConte原创 2016-02-19 17:04:49 · 19908 阅读 · 0 评论 -
MZSelectableLabel使用
使用文本超链接使用到MZSelectableLabel,记录使用步骤: MZSelectableLabel * label = [[MZSelectableLabel alloc]initWithFrame:CGRectMake(15, 40,self.view.frame.size.width-30,self.view.frame.size.width/320*45)]; label.num原创 2016-04-15 23:03:07 · 892 阅读 · 0 评论 -
响应式编程思想(一)
以KVO为例做了一个简单的响应式编程demo,特此记。KVO的底层实现就是监听属性值set方法的改变。需要创建一下几个文件。 PersonPerson.h#import <Foundation/Foundation.h>@interface Person : NSObject/** age */@property(nonatomic,assign)NSInteger age;@endPerson原创 2016-06-15 16:27:44 · 1015 阅读 · 0 评论 -
保存GIF到系统相册
目前尝试的结果只有ALAssetsLibrary可以保存成功gif。保存成功后的GIF在系统相册为静态图,利用QQ或者微信即可看到动态效果。OC:-(void)saveGIFToPhone:(NSString*)uri{// 请求网络图片并写入本地 NSError *error; NSData *gifData; if([uri hasPrefix:@"http://"] || [ur原创 2017-11-23 11:56:43 · 2718 阅读 · 0 评论 -
static inline和extern inline辨析
extern inline表示该函数是已声明过的了.由于函数本身可以声明多次,所以extern对函数的影响仅仅把函数的隐藏属性显式化了. extern 对于非函数的对象是有用的,因为对象声明时会带来内存的分配,而用 extern就表示该对象已经声明过了,不用再分配内存. static是以前C的用法.目的是让该关键字标识的函数只在本地文件可见,同一个程序的其它文件是不可见该函数的.换句话说,就算你转载 2016-03-10 11:58:14 · 781 阅读 · 0 评论 -
UIViewController的详细介绍
UIViewController概念视图控制器是应用程序数据和视图之间的重要桥梁,每个iOS应用程序只显示一个用户界面,显示的内容是由控制器或一组视图控制器协调管理。所以,视图控制器提供了一个基本的框架来构建应用程序。UIViewController是所有视图控制器的父类iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器 (UINavigationControlle原创 2015-08-19 18:07:55 · 962 阅读 · 0 评论 -
NSScanner初识(一)
工程中有关NSScanner的报错,对这个类也不是很了解,闲暇时学习学习。// NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串。可以在创建NSScaner时指定它的string属性,然后scanner会按照你的要求从头到尾地扫描这个字符串的每个字符。 //创建一个scanner类(方式1) NSScanner *scanner=[NS原创 2015-12-25 13:58:23 · 799 阅读 · 0 评论 -
控件旋转frame的计算
在做一个UITableView横向滚动的例子时遇到了视图旋转后frame设置不准的情况,通过分析,总结以下计算方法: 控件旋转根据锚点进行旋转,锚点默认为0.5,为控件的中心点,锚点是不变的,根据锚点在已知旋转后frame的情况下计算出转换前的frame 旋转表格的代码:- (void)viewDidLoad { [super viewDidLoad]; //p2(0,20,w,h原创 2016-03-17 17:05:54 · 1372 阅读 · 0 评论 -
使用PHAsset获取相册中特定的图片
本人对PHotokit框架也不是很了解,就不做解释了。 具体代码如下:PHAsset *ass = _selectedAssets[i]; // 获取所有资源的集合,并按资源的创建时间排序 PHFetchOptions *options = [[PHFetchOptions alloc] init];原创 2016-07-21 16:43:44 · 5834 阅读 · 0 评论 -
一个用来定位当前城市的单例
整理了一个获取定位当前城市的单例类 ZWMapHelper.h#import <Foundation/Foundation.h>#import <CoreLocation/CoreLocation.h>#import <MapKit/MapKit.h>//定位成功回调typedef void(^ReturnCurrentCity)(NSString *currentcity);@interf原创 2016-03-08 13:59:50 · 1626 阅读 · 0 评论 -
设置首行缩进
主要使用TextKit方法。 具体代码如下:NSMutableParagraphStyle *paraStyle01 = [[NSMutableParagraphStyle alloc] init]; paraStyle01.alignment = NSTextAlignmentLeft; //对齐 paraStyle01.headIndent = 0.0f;//行首缩进原创 2016-07-27 15:36:17 · 6311 阅读 · 0 评论 -
控制器管理
一、控制器的创建==================控制器常见的创建方式有以下几种通过storyboard创建 1、先加载storyboard文件(Main是storyboard的文件名)UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];2、 接着初始化storyboard中的控原创 2015-08-19 13:55:21 · 624 阅读 · 0 评论 -
webView加载html动态创建标签
webView加载html有时需要对HTML页面进行动态操作,需动态添加标签事件.主要代码如下: 加载webView和设置代理就不记录了。- (void) webViewDidFinishLoad:(UIWebView *)webView{ [self deleteCookie]; //添加home [webView stringByEvaluatingJavaScrip原创 2016-08-19 12:26:16 · 1810 阅读 · 0 评论 -
[[NSBundle mainBundle]pathForResource..取值为空
最近遇到一个奇葩的问题,使用[[NSBundle mainBundle]pathForResource:imageName ofType:@"png"];获取图片一直取不到图片,简直晕死,一直好用的方法突然不行了,只能另寻它法了。这里提出一个解决方案仅供参考。 1、以实体文件的方式拖入图片文件夹 2、以实体文件的方式查找 NSString *path = [[NSBundle mainBund原创 2017-09-28 21:06:18 · 3734 阅读 · 0 评论 -
mysql数据库的配置问题及命令行操作
一、配置mysql快捷方式1、在终端输入 sudo vi ~/.bash_profile按 i 输入以下#mysqlalias mysql='/usr/local/mysql/bin/mysql'alias mysqladmin='/usr/local/mysql/bin/mysqladmin'#lsalias ls='ls -G'ESC :wq退出重启终端2、登录mysql mysql -u ...原创 2018-04-02 18:01:34 · 337 阅读 · 0 评论 -
调用performSelector出现PerformSelector may cause a leak because its selector is unknown
感谢http://blog.youkuaiyun.com/majiakun1/article/details/46424925的参考:今天在调用performSelector:selector时出现了警告,看着挺不爽,于是想消除警告,在连接中看到了思路特此记录。SEL selector = NSSelectorFromString(@"log"); [self performSelector:selec原创 2017-01-11 10:52:29 · 483 阅读 · 0 评论 -
怎么让self.view的Y从navigationBar下面开始计算
在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll。当你的容器是navigation controller时,默认的布局将从navigation bar的顶部开始。这就是为什么所有的UI元素都往上漂移了44pt。有时会加上顶部tool bar的高度 20, 20+44 = 64转载 2016-06-21 21:40:38 · 12272 阅读 · 0 评论 -
查看代码执行时间
一个简单的查看代码执行时间的方法,首先需要定义两个宏,分别记录开始时间和计算结束时间/** 查看代码执行时间 **/#define start_record NSDate *startTime = [NSDate date];#define end_record NSLog(@"Time: %f",-[startTime timeIntervalSinceNow]);/** 查看代码执行时原创 2016-11-28 16:36:33 · 919 阅读 · 0 评论 -
Objective-C如何自己实现一个基于数组下标的属性访问模式
在iOS6.0以及OS X10.8之后,Apple引入了一套非正式协议(informal protocol)与Objective-C语法直接绑定。当你实现了这其中的方法之后即可使用数组下标来访问属性元素。在Foundation库中,NSArray类实现了- (id)objectAtIndexedSubscript:(NSUInteger)idx方法。因此,我们可以这么来访问数组元素:NSArray转载 2016-06-22 17:07:17 · 324 阅读 · 0 评论 -
iOS对耗时操作的处理方法
在项目中经常会遇到比较耗时的操作导致界面卡顿,可以尝试使用GCD异步方式处理: dispatch_async(dispatch_get_global_queue(0, 0), ^{ // 处理耗时操作在此次添加//通知主线程刷新 dispatch_async(dispatch_get_main_queue(), ^{ //在主线程刷新UI}); });原创 2016-02-29 17:29:03 · 7337 阅读 · 0 评论 -
判断网络是否连接的几种方法
第一种方法: 需要使用Reachability第三方库- (void)checkInternetConnection{ internetReachableFoo = [Reachability reachabilityWithHostname:@"www.baidu.com"]; // Internet is reachable internetReachableFoo.原创 2016-11-07 17:31:40 · 4032 阅读 · 0 评论 -
iOS 易忘面试题收集(准备)
1、NSString为何要用copy?而不是strong/assign?案例1:@interface Test () @property (nonatomic, strong) NSString *strongString; @property (nonatomic, copy) NSString *copyedString;@end@implementation-(...原创 2018-04-12 16:38:02 · 268 阅读 · 0 评论 -
计算设备可用空间
利用NSFileManager获取磁盘属性,根据可用空间计算出磁盘可用空间 NSDictionary *systemAttributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil]; NSString *diskFreeSize = [systemAt原创 2016-03-08 19:11:21 · 438 阅读 · 0 评论 -
view绘制阴影效果
应用中绘制阴影效果会使界面更加美观。 绘制阴影效果的主要代码如下: //containView UIView *containView = [[UIView alloc]init]; containView.backgroundColor = [UIColor whiteColor]; containView.layer.cornerRadius = 5;原创 2016-07-28 10:40:01 · 1451 阅读 · 0 评论 -
解决iOS9新特性无法使用http的解决方法
在使用Xcode7,iOS9编译应用时会出现这样的问题, The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.解决方法:这是iOS9引入了新特性App Transport Security (ATS)的原因,在App内访问原创 2015-12-23 17:01:43 · 501 阅读 · 0 评论 -
iOS资料-插件&第三方&文章
文/零距离仰望星空(简书作者) 原文链接:http://www.jianshu.com/p/f6cdbc8192ba 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。原文出处:codecloudUI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UI转载 2016-04-05 09:37:15 · 2271 阅读 · 0 评论 -
OC工程中添加OC静态工程
1.建立一个OC工程Test1 2.建立一个静态库Test3,选择File->New->Porduct->Cocoa..Lib,加入Test1工程中 3.在Test3中创建一个控制器Test3ViewController,#import <UIKit/UIKit.h>typedef void (^BtnBlock)(NSString *txt);@interface Test3ViewCont原创 2016-01-21 18:40:05 · 552 阅读 · 0 评论 -
iOS-html调起APP并传参
前一段时间要做一个html页面调起APP应用的需求,特记下研究成果 1、在项目info.plist中添加URL Types以供html调用 2、在html中调用<html><head lang="en"> <meta charset="UTF-8"> <title>支付页面</title></head><script type="text/javascript"> var原创 2016-03-15 18:20:35 · 5874 阅读 · 0 评论 -
对ECHarts柱状图的初步封装
在研究ECHarts时,总感觉局限性太大,只能在html页面使用ECHarts,而且创建过程也比较复杂。就尝试着对ECHarts进行初步封装,以便可以快速创建一个图标视图,将过程进行简单记录。 主要代码如下: html页面代码:<!DOCTYPE html><html><head lang="en"> <meta charset="utf-8"> <title>ECharts原创 2016-05-24 18:13:33 · 2135 阅读 · 0 评论 -
认识NS_REQUIRES_NIL_TERMINATION
NS_REQUIRES_NIL_TERMINATION是系统中多参数传值的一个宏,用于编译时非nil结尾的检查。找到了官网上的一个栗子:#import <Cocoa/Cocoa.h>@interface NSMutableArray (variadicMethodExample)- (void) appendObjects:(id) firstObject, ...; // This method原创 2016-11-28 16:32:16 · 1577 阅读 · 0 评论