ios开发

iOS开发——常用宏的定义

筅森魡賤 提交于 2020-02-26 10:08:25
有些时候,我们需要将代码简洁化,这样便于读代码。我们可以将一些不变的东东抽取出来,将变化的东西作为参数。定义为宏,这样在写的时候就简单多了。 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 1.#define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone5 1.#define kScreenIphone5 (([[UIScreen mainScreen] bounds].size.height)>=568) 3.获取当前屏幕的高度 1.#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height) 4.获取当前屏幕的宽度 1.#define kMainScreenWidth ([UIScreen mainScreen].applicationFrame.size.width) 5.获得RGB颜色 1.#define SMSColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0] 6..自定义Log

uni-app判断客户端环境是 Android、iOS 还是小程序开发工具

跟風遠走 提交于 2020-02-25 15:59:09
在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用 uni.getSystemInfoSync().platform 返回值均为 devtools switch(uni.getSystemInfoSync().platform){ case 'android': console.log('运行Android上') break; case 'ios': console.log('运行iOS上') break; default: console.log('运行在开发者工具上') break; } 来源: CSDN 作者: Dove言和 链接: https://blog.csdn.net/qq_21041889/article/details/104495039

iOS开发小技巧--纯代码自定义cell

十年热恋 提交于 2020-02-25 12:26:31
纯代码自定义cell 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样) 1.新建一个继承自UITableViewCell的子类 2.在initWithStyle:方法中进行子控件的初始化 2.1将有可能显示的所有子控件添加到contentView中,代码如下 2.2顺便设置子控件的一些属性(一次性属性:文字颜色,字体,背景) /// cell初始化方法中对子控件进行初始化 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { /** cell顶部的容器 */ UIView *topContainerView = [[UIView alloc] init]; [self.contentView addSubview:topContainerView]; self.topContainerView = topContainerView; /** 头像图片 */ UIImageView *headerImageView = [[UIImageView

iOS开发之实现TabBar中间凸起“+”按钮(自定义TabBar)

旧时模样 提交于 2020-02-25 12:23:54
参考:http://www.jianshu.com/p/46f61bc7a938,https://github.com/Mringkang/KBCustomCenterTabbar 效果: PS:这里需要用到UIView一个分类的一些属性,参考http://www.cnblogs.com/guitarandcode/p/5758995.html ,图标素材等自行上网找或者自己设计,这里就不提供了。最后在StoryBoard中选择TabBarController对应下面自定义的TabBarController即可 自定义TabBar : MyTabBar.h 1 #import <UIKit/UIKit.h> 2 3 @class MyTabBar; 4 5 //MyTabBar的代理必须实现addButtonClick,以响应中间“+”按钮的点击事件 6 @protocol MyTabBarDelegate <NSObject> 7 8 -(void)addButtonClick:(MyTabBar *)tabBar; 9 10 @end 11 12 @interface MyTabBar : UITabBar 13 14 //指向MyTabBar的代理 15 @property (nonatomic,weak) id<MyTabBarDelegate>

ios开发核心动画五:转场动画

给你一囗甜甜゛ 提交于 2020-02-25 12:22:55
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } static int _i = 1; -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //转场代码与转场动画必须得在同一个方法当中. //转场代码 // _i++; // if (_i == 4) { // _i = 1; // } // // NSString *imageName = [NSString stringWithFormat:@"%d",_i]; // self.imageV.image = [UIImage imageNamed:imageName]; // // // //添加转场动画 // CATransition *anim = [CATransition animation]; // anim.duration = 1; // //设置转场的类型 // anim

iOS开发debug跟release版本log屏蔽方法

柔情痞子 提交于 2020-02-25 12:18:17
简单介绍以下几个宏: 1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。 2) __FILE__ 宏在预编译时会替换成当前的源文件名 3) __LINE__宏在预编译时会替换成当前的行号 4) __FUNCTION__宏在预编译时会替换成当前的函数名称 1. 在***-Prefix.pch里面添加, 重新定义系统的NSLog,__OPTIMIZE__ 是release 默认会加的宏 #ifndef __OPTIMIZE__ #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...){} #endif 2.在***-Prefix.pch里面添加 ,直接自己写#define,当release版本的时候把#define 注释掉即可 #define IOS_DEBUG #ifdef IOS_DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #endif 3.在***-Prefix.pch里面添加 #ifdef DEBUG # define DLog(format, ...) NSLog((@"

iOS开发实践之GET和POST请求

我的未来我决定 提交于 2020-02-25 11:48:13
GET和POST请求是HTTP请求方式中最最为常见的。 在说请求方式之前先熟悉 HTTP 的通信过程: 请求 1 、 请求行 : 请求方法、请求路径、 HTTP 协议的版本号 GET /MJServer/resources/images/ 1. jpg HTTP/ 1.1 2、请求头 : client的一些描写叙述信息 Host : 192.168.1.111:8080 // client想訪问的server主机地址 User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0 // client的类型,client的软件环境 Accept : text/html, // client所能接收的数据类型 Accept-Language : zh-cn // client的语言环境 Accept-Encoding : gzip // client支持的数据压缩格式 3、请求体 : POST 请求才有这个东西 请求參数,发给server的数据 响应 1、状态行(响应行) : HTTP 协议的版本号、响应状态码、响应状态描写叙述 Server : Apache-Coyote/1.1 // server的类型 Content-Type : image/jpeg // 返回数据的类型 Content-Length

iOS项目的目录结构和开发流程

柔情痞子 提交于 2020-02-25 00:43:47
iOS项目的目录结构和开发流程 网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法。 目录结构 AppDelegate Models Macro General Helpers Vendors Sections Resources 一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。 AppDelegate 这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。 Models 这个目录下放一些与数据相关的Model文件,里面大概是这样: Models |- BaseModel.h |- BaseModel.m |- CollectionModel.h |- CollectionModel.m ... Macro 这个目录下放了整个应用会用到的宏定义,里面大概是这样: Macro |- AppMacro.h |- NotificationMacro.h |- VendorMacro.h |- UtilsMacro.h ... AppMacro.h 里放app相关的宏定义,如: // 表情相关 #define EMOTION_CACHE_PATH @"cachedemotions" #define EMOTION_RECENT_USED

iOS 开发之照片框架详解

风流意气都作罢 提交于 2020-02-22 15:21:53
一. 概要 在 iOS 设备中,照片和视频是相当重要的一部分。最近刚好在制作一个自定义的 iOS 图片选择器,顺便整理一下 iOS 中对照片框架的使用方法。在 iOS 8 出现之前,开发者只能使用 AssetsLibrary 框架来访问设备的照片库,这是一个有点跟不上 iOS 应用发展步伐以及代码设计原则但确实强大的框架,考虑到 iOS7 仍占有不少的渗透率,因此 AssetsLibrary 也是本文重点介绍的部分。而在 iOS8 出现之后,苹果提供了一个名为 PhotoKit 的框架,一个可以让应用更好地与设备照片库对接的框架,文末也会介绍一下这个框架。 另外值得强调的是,在 iOS 中,照片库并不只是照片的集合,同时也包含了视频。在 AssetsLibrary 中两者都有相同类型的对象去描述,只是类型不同而已。文中为了方便,大部分时候会使用「资源」代表 iOS 中的「照片和视频」。 二. AssetsLibrary 组成介绍 AssetsLibrary 的组成比较符合照片库本身的组成,照片库中的完整照片库对象、相册、相片都能在 AssetsLibrary 中找到一一对应的组成,这使到 AssetsLibrary 的使用变得直观而方便。 AssetsLibrary : 代表整个设备中的资源库(照片库),通过 AssetsLibrary 可以获取和包括设备中的照片和视频

【开发记录】iOS中使用 Reachability 检测网络

眉间皱痕 提交于 2020-02-21 11:33:12
如果你想在iOS程序中提供一仅在wifi网络下使用(Reeder),或者在没有网络状态下提供离线模式(Evernote)。那么你会使用到Reachability来实现网络检测。 写本文的目的 了解Reachability都能做什么 检测3中网络环境 2G/3G wifi 无网络 如何使用通知 单个controller 多个controller 简单的功能: 仅在wifi下使用 Reachability简介 Reachablity 是一个iOS下检测,iOS设备网络环境用的库。 监视目标网络是否可用 监视当前网络的连接方式 监测连接方式的变更 苹果官方提供的Doc http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html Github上的文档 https://github.com/tonymillion/Reachability 安装 创建 network 工程(network是我创建的demo工程,附件中可以下载到) 使用 Cocoaspod安装依赖 在项目中添加 SystemConfiguration.framework 库 由于Reachability非常常用。直接将其加入到Supporting Files/networ-Prefix.pch中: C代码