
IOS开发
Arnly
这个作者很懒,什么都没留下…
展开
-
iOS自定义tabBar
iOS自定义tabBar前段时间我们UI设计师设计了一个与系统自带样式的app的底部tabbar,它除了中间按钮要凸出来,整个tabbar的边部也是不贴边的。要做到这样的效果,就要对系统的babbar进行自定义。UITabBarController中有UITabBar这个类,这个类就是底部导航的关键控件类。1、创建TextTabBar继承UITabBar#import "TextTabBar.h"#define SCREEN_WIDTH [[UIScreen main原创 2022-03-25 10:44:18 · 5924 阅读 · 3 评论 -
iOS Runtime和KVC结合实现字典的数据模型转换
1、runtime 是什么?Runtime又叫运行时,是一套底层的C语言 API,其为iOS内部的核心之一,我们平时编写的OC代码,底层都是基于它来实现的。我们需要了解的是 Objective-C 是一门动态语言,它会将一些工作放在代码运行时才处理而并非编译时。也就是说,有很多类和成员变量在我们编译的时是不知道的,而在运行时,我们所编写的代码会转换成完整的确定的代码运行2、runtime 可以干什么?Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发3、K原创 2021-10-13 16:56:59 · 361 阅读 · 0 评论 -
AFNetworking为什会请求不到数据
最近在做一个项目时,在网络请求的时遇到一个很惆怅的问题, 问题的大概就是,我用AFNetworking发出一个请求,但是返回来的数据是为空,而当时安卓这边用同样的接口,发出请求同样的接口,有请求到了数据,这时问题就尴尬了,我问题向后台这般反馈,但是后台这边的给我的答复是没有收到任何的报错信息,而且安卓这边已经有请求到数据,所以认为后台这边肯定是没有问题的。这是宝宝我就有点急了,因为之前我没有遇到过这原创 2016-09-03 12:10:02 · 3850 阅读 · 4 评论 -
自动适配标签显示
@interface ViewController () { NSArray *arr; CGFloat height; }@end@implementation ViewController(void)viewDidLoad { [super viewDidLoad]; self.title = @”多标签”; self.view.backgroundColor =原创 2016-08-26 09:13:50 · 419 阅读 · 0 评论 -
环信修改昵称和头像
环信修改昵称与头像,在环信的官方文档上有提供两种方法, 一是使用消息拓展,另一种是从后台的服务器获取头像和昵称。原创 2016-10-08 21:04:46 · 2296 阅读 · 0 评论 -
iOS 10-需要添加的权限配置
iOS 10以后,苹果增强了对用户隐私的保护,访问照相机、相册、麦克风、定位、通讯录等,都需要在info.plist 文件中添加权限,而且少一个都不行。根据需要添加,项目中使用了什么,就添加对应的权限。<!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问相册</string> <!-- 相机 -原创 2016-10-23 21:20:14 · 12322 阅读 · 1 评论 -
iOS - 百度地图SDK集成(地理定位)
一、注册账号 打开百度开放者平台,注册账号,有账号直接登录。 二、申请密钥 1.点击申请密钥 2、创建应用 注意:安全码的填写规则。这就是密钥 三、配置环境 1、在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC。2、info,plist设置ATS, App原创 2016-11-07 16:09:47 · 1889 阅读 · 0 评论 -
Apple ID 的申请流程
Apple ID 申请可以在通过PC端申请也可以在IOS系统的手机上申请。本节就说说在PC端的申请流程。1、打开苹果帐户注册网站:appleid.apple.com/cn,然后点击右上角的“创建 Apple ID” 2、按照提示填写对应的信息 回答的问题注意字符要大于等于3然后在填写图片验证码,点击“继续”提交。出现下面这个页面 最后在到邮箱中找到苹果发送到验证码,填写在这里,再点击继续,原创 2017-05-16 17:18:37 · 2219 阅读 · 0 评论 -
Xcode 上模拟器显示大小的调整
不同的电脑,显示Xcode的模拟器的大小不一样,为了适配的更加准确,这时可能就需要我们对模拟器的显示做调整。 这里就是显示大小的调整。原创 2017-05-17 17:40:33 · 10114 阅读 · 0 评论 -
fatal error: too many errors emitted, stopping now [-ferror-limit=]错误
最近遇到一个这样的错误真是愁了我很久,终于在搜索万能的度娘中找道了答案,解决了我的燃眉之急。 解决方法就是:build settings 里 Compile Sources As选项改为Objective C++。原创 2017-05-18 16:42:59 · 9998 阅读 · 1 评论 -
iOS 颜色线性渐变
在View上设置渐变颜色的效果@interface ColorLineVC ()@property (nonatomic, strong) UIView *backView;@end@implementation ColorLineVC- (void)viewDidLoad { [super viewDidLoad]; self.title = @"颜色渐变"; [self b原创 2017-07-10 17:41:12 · 2411 阅读 · 0 评论 -
iOS Math.h-三角函数
1、 三角函数 double sin (double);正弦 double cos (double);余弦 double tan (double);正切 2 、反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI]转载 2017-07-27 11:35:40 · 1066 阅读 · 0 评论 -
iOS项目集成BongSDK,打包提交报@“ERROR ITMS-90171 和ERROR ITMS-90206”错误
最近项目打包上线遇到“ERROR ITMS-90171 和ERROR ITMS-90206”错误。 项目如果用cocoapods导入BongSDK这个SDK,然后在pods这个文件下,找到bongSDK这个包,点击进去,可以看到这里的内容, 其中Frameworks,libswiftRemoteMirror.dylib,是多余的,删除这两个,再选择配置文件打包,就可以了。原创 2017-08-24 11:37:58 · 2322 阅读 · 0 评论 -
iOS 升级cocoapods
1. 检测gem版本$ gem -v如果gem版本小于2.6.x,则需要更新gem2. 更新gem(gem版本高于2.6.x可跳过此步)检测ruby源,更新gem需要官方的ruby源$ gem sources -l替换ruby源为官方地址(如果ruby源是"https://rubygems.org/"则跳过此步)$ gem sources --add https:...转载 2018-09-27 16:34:41 · 742 阅读 · 0 评论 -
NavigationItem -导航栏右边空件
1.文字显示self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"编辑" style:UIBarButtonItemStylePlain target:self action:@selector(editPosition:)];2, 图片显示 (1)self.navigationItem.原创 2016-08-31 10:29:41 · 414 阅读 · 0 评论 -
字符串的拼接
//常用字符串的拼接 NSString *string1 = [NSString stringWithFormat:@”%@:%@”,@”浏览量”,@”15”]; NSLog(@”string1:%@”,string1);原创 2016-08-20 12:12:07 · 431 阅读 · 0 评论 -
列表的多选操作
在项目中我们会经常遇到列表多选与全选的操作,其实现的方式有很多,以下就是我的一种实现方法。多选就是两种状态:选中和未选中,其思路是 1,首先是初始化一个可变数组和可变字典,遍历出每个cell的数值,给每个cell都符值为“0”(“0”代表未选中,“1”代表选中),加在字典中,在把字典加在数组中。 2,其次是,在cell中取出数组中 的值做判断,当值为“0”时,显示“未选中”状态。值为“1”时,显原创 2016-06-03 12:01:03 · 1636 阅读 · 0 评论 -
iOS-MJRefresh
MJRefresh我们在项目中常用的一款开发辅助工具,里面包括有下拉刷新,上拉加载更多数据,一般在tableView,UICollectionView,UIWebView上面使用,关于下拉刷新和上拉加载的样式也是有很多,详情请见https://github.com/CoderMJLee/MJRefresh 以下是我本人在tableView上使用MJRefresh的简单demo。首先需要我们在git原创 2016-03-31 21:53:03 · 975 阅读 · 0 评论 -
IOS传值方法-属性正向传值
用属性进行传值,将A界面的值传递到B界面。在B类中定义一个变量,然后在A类中跳转到B类中的地方,对需要传递的变量进行赋值。在A界面中代码#import "AViewController.h"#import "BViewController.h"@interface AViewController ()@property (retain, nonatomic)UITextField *textFie原创 2016-03-09 22:09:11 · 425 阅读 · 0 评论 -
IOS传值方法- 属性反向传值(delegate)
利用委托delegate反向传值,将B界面的值传到A界面。在B类中定义一个delegate和传值的方法。1.在A界面中的代码#import "AViewController.h"#import "BViewController.h"@interface AViewController ()@property (retain, nonatomic) UILabel *label;@end@imp原创 2016-03-09 22:29:54 · 435 阅读 · 0 评论 -
IOS数组排序
1.字母排序(字母本身就有默认的顺序) NSArray *arrData = @[@"n",@"a",@"h",@"c",@"b",@"e",@"j",@"f",@"g"]; NSArray *sortetArr = [arrData sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"%@",sortetArr);结果原创 2016-03-10 13:51:25 · 637 阅读 · 0 评论 -
IOS- SDWebImage的作用
SDWebImage 主要是用于项目中的图片缓存。图片缓存,一般是缓存图片,就是当我们第一从网络中获取到了图片,SDWebImage就会把该图片的数据存在我们手机对应的内存缓存文件当中,只要我们不把缓存删除,下次我们在APP的对应页面就不需要在从网络上去获取,数据会自动的先调用本地对应的缓存数据(在断网的情况下,也是可以调用本地数据)。图片缓存作用,节省了用户的流量,提升用户体验度。 下面是图片缓原创 2016-04-04 16:52:03 · 573 阅读 · 0 评论 -
IOS-CAShapeLayer与UIBezierPath的基本用法
##1.CAShapeLayer CAShapeLayer顾名思义,继承于CALayer。 每个CAShapeLayer对象都代表着将要被渲染到屏幕上的一个任意的形状(shape)。具体的形状由其path(类型为CGPathRef)属性指定。 普通的CALayer是矩形,所以需要frame属性。CAShapeLayer初始化时也需要指定frame值,但 它本身没有形状,它的形状来源于其属性path原创 2016-03-11 10:54:23 · 3219 阅读 · 0 评论 -
设置圆形图像
圆形的 imageView在我们项目中一般也经常用到,有种方法可以设置。 方法一:设置圆角![UIImageView *imageheader = \[\[UIImageView alloc\] initWithFrame:CGRectMake(50, 100, 100, 100)\]; imageheader.image = \[UIImage imageNamed:@"text.jpf原创 2016-03-11 16:29:48 · 709 阅读 · 0 评论 -
IOS-MBProgressHUD常见的几种用法
MBProgressHUD是我们在项目中常用的一种请求数据时的提示控件。首先也是需要我们下载MBProgressHUD工具,在把它加在我们的工程当中,在项目中进行调用。下载地址: 用法一 :(最简单的用法,不需要其他的操作) (1)在项目运行之前添加代码, [MBProgressHUD showHUDAddedTo:self.view animated:YES];//开始加载数据提示(2)在数原创 2016-04-04 14:09:00 · 824 阅读 · 0 评论 -
IOS-官方文档CGAffineTransform(旋转,缩放,平移)
1.旋转 方法原型CGAffineTransform CGAffineTransformMakeRotation ( CGFloat angle );//旋转代码实例self.view.backgroundColor = [UIColor whiteColor]; UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(0, 0原创 2016-03-15 10:12:57 · 2944 阅读 · 0 评论 -
iOS UINavigation
创建一个导航条,代码如下:#import "AppDelegate.h"#import "ViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(原创 2015-11-02 22:38:34 · 385 阅读 · 0 评论 -
IOS环信3.1 -SDK集成
一,集成前的准备工作 1.注册环信开发者账号并创建后台应用,然后创建一个应用,会得到一个对应的AppKey,这个AppKey在初始化环信SDK的时候需要用到。制作并上传推送证书,但是如果只是需要实现单聊、群聊等功能,可以跳过此步骤。 2.下载SDK 可以通过通过Cocoapods下载地址,也可以通过到环信官方网站下载环信 SDK。 二,配置工程 1,导入SDK 将下载好的SDK文件夹原创 2016-04-20 13:18:55 · 3031 阅读 · 0 评论 -
CollectionView-基本方法
@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>@property (nonatomic, strong) UICollectionView *collectionView;@end@implementation Vi原创 2016-05-31 11:02:39 · 691 阅读 · 0 评论 -
IOS-TableViewCell滑动删除
这次项目tableViewCell中正好要用到滑动删除,因为之前没有用到所不是很了解,本人从被人的博客学到了两种比较好用的方法。 方法一: //先要设Cell可编辑- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ return YES;}//定义编辑样式原创 2016-05-20 09:47:01 · 768 阅读 · 0 评论 -
iOS AFNetworking 3.0 的使用
AFNetworking 3.0 一般网络请求我们常用的两种反式分别是GET请求与POST请求。GET请求我们通常是用在请求的数据只是用来做展示没有其他的操作,而POST请求则用在请求的数据既可以做展示也可做其他操作。那又是为什么呢,因为GET请求的参数直接暴露在请求的URL上,这样是我们传递的数据安全性不高,而POST请求我们请求的参数放在请求体里面,这样做安全性高。 1.GET请求AFHTT原创 2016-03-30 22:12:16 · 615 阅读 · 0 评论