iOS
文章平均质量分 73
ChasingDreamsCoder
这个作者很懒,什么都没留下…
展开
-
Mac安装cocopods
1.打开终端,查询ruby版本.因为mac自带ruby环境.所以我们输入ruby -v当终端中这样显示的话就证明Mac下自带ruby环境.2.终端中输入命令sudo gem install cocoapods输入完之后会显示让用户输入密码,密码输入完成之后会有一个短暂的寂静.这时需要耐心等待一下来判断是否需要更换ruby镜像.如果等待一会儿还是毫无反应,那...原创 2019-11-05 08:47:46 · 1108 阅读 · 0 评论 -
ios 约束(四)
1 格式字符串 1、方向 字符串开头的哪个可选项目表示约束规则所针对的方向,H:表示水平方向,V:表示垂直方向。意思是说,这条规则所约束的是左右方向的布局还是上下方向的布局。假如省略该项目,那么默认就表示左右方向。比方说有这样一个约束字符串:“H:[view1][view2]”,它的含义就是把view2直接放在view1右侧。H表示这条约束规则所针对的方向。原创 2016-12-24 22:54:38 · 563 阅读 · 0 评论 -
ios 约束(三)
创建约束规则 通过NSLayoutConstraint类,开发者可以用两种方式来创建约束规则。可以用一个相当长的方法调用语句来指明视图的某个属性与其他属性之间的关系,并描述这些属性之间的联系,也可以用一种写起来非常短小的格式化语言来指定视图在水平方向与垂直方向上的排布形式。 记住:无论怎么样构建约束规则,他们所产生的结果都是类似“y关系mx + b”这样的关系式。不原创 2016-12-24 20:55:46 · 489 阅读 · 0 评论 -
ios UIDevice类以及Info.plist文件
访问基本的设备信息UIDevice类提供了与设备有关的一些重要属性,包括iPhone、ipad或者iPod touch的型号、设备名称、OS名称以及OS版本。通过这种一站式解决方案,我们可以获知系统的一些详细信息。每项属性都要通过实例方法来获取。可以从UIDevice中获取的设备信息有:1、systemName——该属性返回当前操作系统的名称。对于目前的iOS设备来说,只有一种系统运行原创 2016-12-09 23:40:04 · 669 阅读 · 0 评论 -
ios 辅助功能
通过辅助功能,开发者可以把iOS应用程序提供给身体有障碍的人士使用。系统的General Settings里面包含一些辅助功能,可以把显示的内容放大,并反转界面颜色等。而对于开发者来说,辅助功能主要是围绕着VoiceOver来实现的,它可以令视障用户“听”到程序的GUI。VoiceOver能够以声音来描述程序的图形界面。 不要把VoiceOver与Voice Control或Si原创 2016-12-09 22:18:50 · 3583 阅读 · 0 评论 -
ios 记住标签的状态
对于iOS平台来说,持久是金。启动应用程序或者是从暂停及中断状态继续执行程序的时候,我们应该把程序状态恢复到用户上一次离开时的这样子,这样做使得用户能够继续操作上次正在操控的内容,并且能令用户界面与上次会话的界面相符。@implementation AppDelegate{ UITabBarController *tabBarController;}- (void)tabBar原创 2016-11-27 14:18:11 · 375 阅读 · 0 评论 -
ios 语音合成
苹果公司在iOS7中添加了文字转语音的功能,这对于辅助功能和其他任务来说都是非常有用的工具,可以帮助用户浏览内容或增加程序的趣味。可以用AVSpeechSynthesizer和AVSpeechUtterance类来说出任意字符串。对于长篇文本来说,这项功能非常方便,它令开发者可以获得比使用VoiceOver时更为精细的控制权,从而能够以编程的方式控制语音,包括选定发音内容和时机,以及调整音调和语速原创 2016-12-08 22:38:53 · 912 阅读 · 0 评论 -
ios 动态字体
一直以来,iOS的辅助功能都可以令应用程序与某些能力相配合,并适应很多的限制。用户可以调整显示设置,以影响设备上所安装的全部程序。 要想在程序中使用动态字体,必须通过preferredFontForTextStyle方法来选中字体,并传入下面几种样式之一:// Font text styles, semantic descriptions of the intended use原创 2016-12-08 10:32:06 · 542 阅读 · 0 评论 -
ios 创建圆形布局
创建圆形布局 圆形布局是一种醒目的排版方式,他会将试图里的内容绕着某个中心区域来排布,这种布局方式很好的演示了如何在创建条目和删除条目的时候,把操作过程以动画形式展现出来。 通过collectionViewContentSize方法把视图内容的尺寸设为固定值。由于它明确的创建了一块固定不变的排版区域,所以集合视图不会再滚动了。代码还会在prepareLayout方法原创 2016-12-08 09:52:44 · 1447 阅读 · 1 评论 -
ios 模态视图
模态界面 在使用一般的导航控制器时,用户会逐次深入每一个视图,偶尔还会停下了返回前一个视图看看。如果用户要浏览的数据与树状的视图结构相匹配,那么这种办法就比较合适。此外,我们还可以用模态的方式来显示视图控制器。 如果给视图控制器发送presentViewController:animated:completion:消息,那么该消息里所指定的那个视图控制器就会出现原创 2016-11-25 14:32:55 · 1141 阅读 · 0 评论 -
ios UIBarButtonItem类
UINavigationItem类 系统会用UINavigationItem类的对象来生成导航栏的内容,该类存放了一些与这种对象有关的信息。UINavigationItem的属性包括导航栏左侧与右侧的UIBarButtonItem、显示在导航栏中的标题、用来显示该标题的视图以及用于从当前视图返回到上一个视图的Back按钮。 通过这个类,可以把按钮、文本及其他UI原创 2016-11-25 10:53:18 · 983 阅读 · 0 评论 -
ios 视图控制器
视图控制器 视图控制器就是iOS MVC设计模式中的Controller部分。每个视图控制器都管理着一套视图,这些视图组成了程序用户界面里的一个组件。视图控制器负责协调视图的加载以及视图的样貌,同时还会响应用户的操作。 视图控制器也会与设备及底层操作系统相配合。比方说,用户旋转设备的时候,视图控制器会更新其中视图的布局。当操作系统的内存过低时,控制器也会对内存原创 2016-11-24 22:55:46 · 517 阅读 · 0 评论 -
ios UICollectionViewController集合视图(四)
采用流式布局的简单集合视图在这里制作了简单的集合视图控制器,并且使开发者可以指定它的头部和尾部。这里写了关键的数据源方法与委托方法,以便实现简单的网格状流式布局。苹果公司提供了很多属性,开发者可以通过与集合视图有关的一些委托方法,以及UICollectionViewDelegateFlowLayout协议中的委托方法来提供与这些属性相对应的值。并且稍微调整一下源代码,修改视图中的区段数量、每个原创 2016-12-06 22:26:34 · 592 阅读 · 0 评论 -
ios UICollectionViewController集合视图(三)
流式布局由UICollectionViewFlowLayout类所提供的流式布局会在应用程序里创建出网格状的界面。他们有一些内置的属性,开发者既可以直接设置这些属性,也可以通过委托回调来提供属性的值。这些属性用来指定布局对象应该如何配置自己,才能把各条目适当的显示在屏幕上面。从最简单的角度来说,这些布局属性可以看作一份与几何特征有关的字典,他们描述了行间、缩进,以及条目之间的留白等特性。1原创 2016-12-06 00:27:56 · 578 阅读 · 0 评论 -
ios UICollectionViewController集合视图(二)
创建集合视图 与表格一样,集合视图也有两种用法,一种是直接使用集合视图,另一种是使用系统预置的控制器。开发者可以构建一份单独的集合视图实例,并把它添加到界面中,也可以使用更为方便的UICollectionViewController对象,该对象是个预先制备好的视图控制器,其中带有一份集合视图。这个控制器会自动把视图的数据源及委托设置成该控制器本身,而且还会宣称自己遵从两个相关的协议。原创 2016-12-05 22:14:28 · 379 阅读 · 0 评论 -
ios 约束(五)
1、用格式字符串将试图对齐并灵活调整其尺寸 通过约束规则,我们很容易就能指定视图的对齐方式: 1、“H:|[self]”、“H:[self]|”、“V:[self]|”、“V:|[self]”这4种格式字符串分别产生左对齐、右对齐、顶部对齐及底端对齐的效果。 2、向上述字符串中添加表示尺寸关系的谓词,即可实现拉伸至左边界、拉伸至右边界等效果:“H:原创 2016-12-25 09:50:12 · 603 阅读 · 0 评论 -
ios 统一类型标识符
统一类型标识符是iOS系统在分享信息时所使用的中心组件,可以将他们看成是新一代的MIME类型。UTI是一种字符串,能够表示诸如图像及文本等资源类型。UTI指明了程序之间将要共用的数据对象是何类型。他们并不依赖于原有的各种指示符,比如文件扩展名、MIME类型或是OSType等与文件类型有关的元数据。UTI用一种更新颖、更灵活的技术取代了原有的那些技术。 UTI的命名遵循反向域名样式原创 2016-12-19 09:56:13 · 2272 阅读 · 0 评论 -
iOS 语音合成支持后台和锁屏情况
最近有一个需求,就是要加入语音合成,并能够在进入后台或者锁屏之后能够播报,现在最流行的应该就是科大讯飞了,功能强大,用起来简单,但是如果只要简单的TTS功能就没有必要集成其他的SDK了,iOS中提供好的API就可以了。AVSpeechSynthesizer这个类可以用来播放一个或者多个语音内容,播放的语音内容都是通过实例化AVSpeechUtterance而得到,对于一个或者多个AVSpe...原创 2019-01-10 14:18:31 · 1470 阅读 · 0 评论 -
textView 键盘变发送,置灰发送,小细节优化
最近在做发表回复评论这样的功能,总结了一点小小的知识点,写下来方便以后查找1,将UITextView 弹起的键盘换行按钮变成发送按钮,这个只要改变一个属性即可_textView.returnKeyType = UIReturnKeySend;这个属性是一个枚举类型,可以根据自己的需要去进行设置typedef NS_ENUM(NSInteger, UIReturnKeyType)...原创 2018-10-15 17:19:07 · 1897 阅读 · 0 评论 -
iOS 支付宝支付及授权
这篇博客只是讲解了客户端如何接入下载支付的SDK[https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1](https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1)...原创 2018-09-04 23:34:15 · 3723 阅读 · 0 评论 -
iOS 跳转到AppStore进行评分
跳转到AppStore评分:跳转到AppStore,进行评分;如何获得APPID在https://itunesconnect.apple.com中创建应用即可在应用界面获得 NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-rev...原创 2018-09-04 09:37:53 · 909 阅读 · 0 评论 -
xcode打包directory not found for option Release-iphoneos
最近开发项目的完成第一版,要打包进行测试,觉得应该不会出现什么问题吧,等待过程中突然报错这个是什么情况,于是通过各种办法来找解决办法,在网上有很多的解决办法,一一试过了都不好用,各种重启、删除、重新导入,也都不好用,真的让人崩溃啊,没有办法还是要找啊~。最终还是让我解决了这个问题,虽然我也不知道为什么,我还是说说方法吧:1.点击xcode -->preferences2.选中...原创 2018-08-23 15:23:45 · 865 阅读 · 0 评论 -
ios 中通过图片的透明度来决定是否响应事件
我们在开发的时候会遇到图片有透明的地方,我们不想在点击透明的地方会响应事件,只是在点击不透明的地方才会响应事件,有两种方式可以进行解决,对于规律的图形来说,我们可以透过计算出不透明区域的范围在什么地方来控制是否响应事件,对于不规律的图形来说,我们可以通过判断透明度来控制是否响应事件,接下来代码就是通过透明度方法来控制的:@implementation SJTTouchImageView{ ...原创 2016-11-04 00:20:50 · 1205 阅读 · 0 评论 -
中文转码问题
在做sharesdk分享的过程中遇到了一个问题,就是当在url中拼接一个中文字符串的时候无法分享出去,并报出QQAPI- ConfigManager.m:113 @_@的问题,看来是一个蒙圈的表情啊,其实这个不是什么大问题,就是忘记对中文字符串进行转码,只要将stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding这样的方原创 2017-09-18 15:11:51 · 971 阅读 · 0 评论 -
关于 Cannot create __weak reference in file using manual reference counting及配置ReactiveCocoa
最近再看关于reactiveCocoa的用法,决定尝试使用,在cocoapods中将其集成到项目里,这里没有什么难度,但是一运行程序问题出现了,提示 Cannot create __weak reference in file using manual reference counting,解决的办法就是在Build Settings--------->Aplle LLVM版本号 -原创 2017-09-16 15:35:43 · 955 阅读 · 0 评论 -
ios 取得当前界面方法
在项目中遇到了一个问题,就是项目的需求是在用户退到后台的时候再次进入软件要出现一个手势密码的界面,开始我是这样写的: _openLockView = [[OpenLockViewController alloc] init]; UINavigationController *openNav = [[UINavigationController alloc] initWithRoo原创 2017-03-28 13:56:20 · 1422 阅读 · 0 评论 -
ios 约束(七)
用宏来创建约束规则 用约束规则来排布控件的位置是相当可靠的。不过,就其本身来说,他们非常繁琐而且特别冗长。开发者要一次又一次的编写很难懂的方法调用语句。 约束规则调用起来也特别麻烦。一个简单的拼写错误就会耗费很多时间,而且许多应用程序所使用的约束规则都是一样的。如果可以预先定义一些宏,那么就能把排布视图所用的代码写的更易懂且更加可靠。假如要把某视图与另外一个视图原创 2016-12-30 17:09:26 · 364 阅读 · 0 评论 -
ios 约束(六)
1、实现约束规则之间的对比 所有的约束规则都遵循同一套固定的结构,而且都有相关的优先级: view1.attribute(relation)view2.attribute*multiplier + constant 上述等式的每个部分都与NSLayoutConstraint对象的属性相对应,他们分别是priority、firstItem。firs原创 2016-12-30 10:05:13 · 740 阅读 · 0 评论 -
ios 约束(二)
1、约束系统的运作规律 可以认为约束系统所用的数学算是非常严格,实际上它们只是个参考。iOS会找到对符合约束的一种布局方案,有的时候,这种方案不止一套。下面给出约束系统的一些基本特征: 1、约束规则描述的是关系,而不一定是视图在某个方向上的属性。未必非要在知道右边界的情况下才能算出左边界。 2、每条约束规则都有其优先级。优先级的取值范围是从0到10原创 2016-12-19 23:52:03 · 741 阅读 · 0 评论 -
ios 约束(一)
1、什么是约束 约束就是一系列描述iOS程序视图布局的规则。他们限定了视图之间的关系,也限定了视图的布局形式。使用约束时。我们可以说“这些视图在水平方向上必须对齐”,或是“此视图必须根据另一个视图来调整自身高度,以便与之相符”。约束向开发者提供了一套布局语言,使得可以向视图里添加约束,并以此来描述各视图的空间关系。 iOS负责通过一套约束满足系统来实现这些布局需原创 2016-12-19 14:18:36 · 980 阅读 · 0 评论 -
ios 剪贴板
剪贴板为操作系统提供了一块集中存放数据的区域,使得应用程序之间可以共享数据。用户可以在某个程序里复制一份数据,然后切换到其他程序,将那份数据黏贴到那个程序里。大部分操作系统里面都有与剪切、复制、粘贴操作类似的功能。此外,用户也可以在同一个应用程序内部的文本框与视图之间复制并粘贴数据,而开发者则可以创建应用程序专用的剪贴板,它里面存放的数据,其他程序无法解读。 UIPasteboard原创 2016-12-19 10:25:30 · 3501 阅读 · 0 评论 -
ios UICollectionViewController集合视图(一)
集合视图与表格的异同 UICollectionView实例会把各项数据展示成一份有序的集合。与表格视图一样,集合视图也由单元格、头部及尾部构成,而且由数据源方法及委托方法所驱动。但与表格不同的地方在于,集合视图还引入了与布局有关的类,这个类用来制定各条目应该如何摆放在屏幕上。该类负责管理每个单元格的位置,使得对应的条目可以在必要时出现在适当的地方。 两者都提供了原创 2016-12-05 16:17:47 · 419 阅读 · 0 评论 -
ios UIDatePicker类
有时可能需要请用户输入日期信息。苹果公司提供了非常好的UIPickerView子类(在我的上一篇博客中讲解了UIPickerView的使用),用于处理几种日期与时间的输入。创建UIDatePickerUIDatePicker的创建过程与UIPickerView的相同,两者的布局方式也一样。创建好的UIDatePicker对象之后,就简单多了。我们不需要设置委托,也不需要定义数据源方法,而且原创 2016-12-05 00:12:58 · 322 阅读 · 0 评论 -
ios UIView的回调方法
当视图层级有变化时,系统可以向相关视图发送回调。iOS SDK提供了留个回调的方法,应用程序可以通过这些方法来追踪视图的移动以及上层视图的变动:1、didAddSubview:如果有人通过addSubview:方法或者是UIView提供的几个插入方法成功的向某个视图添加了一个子视图,那么系统就会在上级视图上面调用这个方法。我们可以在UIView的子类里复写这个方法,以便在新的子视图添加进来的时原创 2016-11-10 15:50:51 · 2385 阅读 · 0 评论 -
ios 视图的层级关系
我们可以用树状图来分解iOS屏幕。从主视窗开始,各种视图都是依照特定的层次来排布的。所有的视图都可以有下级,就是子视图。子视图按照由后到前的顺序显示,开发者可以在每个视图上面都只绘制一部分内容,然后将其叠起来实现复杂 的视觉效果。每个视图都有其上级视图和下级视图。可以用递归遍历某个视图的所有下级视图,当从某个上级视图进入其下级视图的时候,会增加缩进级别。主要代码如下:- (void)dumpV原创 2016-11-10 13:52:47 · 1894 阅读 · 0 评论 -
ios 可变长参数列表
有些方法的参数个数可以变化,这种方法叫做variadic方法。开发者可以在最后一个普通的参数后面使用省略号来声明变长参数列表。可以向其出入格式化字符串,并同时传入任意数量的其他参数。+ (void)say:(id)formatstring,...{ if (!formatstring) { return; } va_list arglist;原创 2016-11-10 00:50:42 · 1537 阅读 · 0 评论 -
ios 加速计效果实现
在ios7中引入了运动效果,它可以把设备加速计上面所发生的事件同UIKit的值关联起来。开发者只需要创建UIMotionEffect子类的实例(目前系统只提供了一种UIMotionEffect子类,就是UIInterpolationMotionEffect),我们可以通过它来实现效果,但是要注意,加速计在真机上才有效果,在模拟器上是没有效果的。简单的代码如下:- (void)startMoti原创 2016-11-10 00:00:09 · 644 阅读 · 0 评论 -
ios 编写UIControl子类
构建UIControl的过程一般分成四部。首先继承UIControl,创建新的自定义类,然后在新类中初始化方法中安排好控件的样貌。接下来编写一些方法,以便追踪并拦截触摸事件,最后产生相关事件及视觉反馈效果。UIControl实例有一套应对触摸事件的方法beginTrackingWithTouch:withEvent:-->如果在控件的范围内发生触摸事件就会调用这个方法。continue原创 2016-11-08 00:39:24 · 538 阅读 · 0 评论 -
ios 自定义滑杆
先让我们看看效果:主要实现的代码:UIImage *thumbWithLevel(float aLevel){ float INSET_AMT = 1.5f; CGRect baseRect = CGRectMake(0, 0, 40, 100); CGRect thumbRect = CGRectMake(0, 40, 40, 20); U原创 2016-11-07 23:53:04 · 1480 阅读 · 0 评论 -
ios 对于按钮的操作
按钮文本长度我们可以通过titleLabel属性,可以修改其标题,但是如果文本的长度过长显示不下就应该将文本换行展示出来: [btn setTitle:@"当我们的文本过长时\n 我们需要换行显示" forState:UIControlStateNormal]; btn.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;原创 2016-11-06 13:15:13 · 370 阅读 · 0 评论