IOS开发,知识点小结,ios开发中经常使用的宏定义总结
IOS开发,从应用跳转到用浏览器打开网页:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.oatos.com/bbs/"]];
用一个Button覆盖整个cell,加入动作
cell.accessoryType = UITableViewCellAccessoryNone; UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, cell.contentView.frame.size.width, 54.0)];
btn.autoresizingMask = UIViewAutoresizingFlexibleWidth;
btn.backgroundColor = COLOR(243.0, 89.0, 31.0, 1.0);
btn.tag = 1003;
NSString *title = nil;
#ifndef appstore
title = NSLocalizedString(@"Pad_setting_exitBtnTitle", nil);
#else
title = NSLocalizedString(@"Pad_setting_logoutBtnTitle", nil);
#endif
[btn setBackgroundImage:[UIImage imageNamed:@"bgBtnLogoutNormal.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"bgBtnLogoutHover.png"] forState:UIControlStateHighlighted];
[btn setTitle:title forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont boldSystemFontOfSize:20.0];
[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(loginOuBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:btn];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
经常使用的宏定义
#define IOS_VERSION [[UIDevice currentDevice] deviceVersion]
#define kDeviceAgent [[UIDevice currentDevice] deviceAgent] #define IsiOS7Later !(IOS_VERSION < 7.0)
#define Is4Inch [OatosUtils is4InchScreen]
#define COLOR(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
#define Size(w, h) CGSizeMake(w, h)
#define Point(x, y) CGPointMake(x, y)
#define Rect(x, y, w, h) CGRectMake(x, y, w, h)
#define ViewWidth(v) v.frame.size.width
#define ViewHeight(v) (IsiOS7Later ? v.frame.size.height : v.frame.size.height - StatusBarHeight)
#define ViewX(v) v.frame.origin.x
#define ViewY(v) v.frame.origin.y
#define ViewRect(v) Rect(ViewX(v), ViewY(v), ViewWidth(v), ViewHeight(v))
#define SelfViewHeight self.view.bounds.size.height
#define kDeviceScreenH [[UIScreen mainScreen] bounds].size.height
#define kDeviceScreenW [[UIScreen mainScreen] bounds].size.width #define kAppMainScreenFrameWidth [[UIScreen mainScreen] applicationFrame].size.width
#define kAppMainScreenFrameHeight [[UIScreen mainScreen] applicationFrame].size.height
#define StatusBarHeight [UIApplication sharedApplication].statusBarFrame.size.height #define kHeightStatusAndNav (IsiOS7Later ? 64 : 44) // 状态栏和导航栏的总高度
#define kPadHeightNavForPopView 44 //3.4版本号后開始使用的,重构后机制不一样(跟弹出层布局相关)
#define kStatusBarFix (IsiOS7Later ? 20 : 0) // 状态栏高度
#define kPadHeightStatusAndNav (IsiOS7Later ? 64 : 0) // 状态栏和导航栏的总高度
#define kPadNaviBarHeight (IsiOS7Later ? 54.0f : 0) // pad不含状态栏的导航栏的高度
#define kPadBottomBarHeight 60.0f
#define kPadHeightNav (IsiOS7Later ? 44 : 0)
小结:代码中,尽量不要用写死的数据,不然版本号适配以及以后的优化是非常痛苦的事情。
还实用宏定义能够简化代码。眼下我的理解仅仅有这么多。希望以后对这个掌握的更好。尽管这仅仅是小基础。可是也是一种良好的编程习惯。一个好的開始。
IOS开发,知识点小结,ios开发中经常使用的宏定义总结的更多相关文章
- iOS --- 总结Objective-C中经常使用的宏定义(持续更新中)
将iOS开发中经常使用的宏定义整理例如以下,仅包括Objective-C. 而对于Swift,不能使用宏,则能够定义全局函数或者extension.请參考博客iOS - 总结Swift中经常使用的全局 ...
- C中的预编译宏定义
可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一 ...
- IOS开发中经常使用的宏定义
ios讨论群1群:135718460 有些时候.我们须要将代码简洁化,这样便于读代码.我们能够将一些不变的东东抽取出来.将变化的东西作为參数. 定义为宏,这样在写的时候就简单多了. 以下例举了一些经常 ...
- VC中预处理指令与宏定义详解
刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具.使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能. 一个 ...
- 在oc中一些常用的宏定义总结
1.打印CGRect,Size,Point #define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", ...
- linux中offsetof与container_of宏定义
linux内核中offsetof与container_of的宏定义 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->M ...
- C++ 中 #ifndef, #define, #endif 宏定义
目的:为了保证包含的内容只被程序(include) 和编译了一次.判断预处理器常量是否已被定义. 预编译将所有头文件(#include"XXX.h")用头文件中的内容来替换,头文件 ...
- 内核中likely和unlikely宏定义
在内核代码中经常会看到unlikely和likely的踪影.他们实际上是定义在 linux/compiler.h 中的两个宏. #define likely(x) __builtin_expec ...
- iOS开发中常用到的宏定义
1.首次启动判断: #define First_Launched @"firstLaunch" 2.ios7系统判断: #define IsIOS7 ([[[UIDevice cu ...
随机推荐
- iOS大转盘抽奖
功能 点击大转盘旋转后固定到某个自己可以确定的位置 结构 转盘,开始按钮,指针 技术 CADisplayLink不停重绘,CGAffineTransform旋转,简单数学公式 核心代码 1.使用CAD ...
- iOS学习笔记16-数据库SQLite
一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...
- ZipKin原理学习--zipkin支持日志打印追踪信息
目前在zipkin brave已经提供功能在我们使用logback或log4j等时可以在日志信息中将traceId和spanId等信息打印到运行日志,这样可能对我们通过日志查看解决问题有比较大的 ...
- BZOJ3473 字符串 【广义后缀自动机】
题目 给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串? 输入格式 第一行两个整数n,k. 接下来n行每行一个字符串. 输出格式 一行n个整数,第i个整数表 ...
- redmine与SVN的Https方式整合问题
尼玛啊!这个SVN的整合搞了一晚上,今天早上终于搞定了,FUCK!!! 进入话题: 可以先在bitnami redmine stack的命令行环境下手工运行svn,看是否能取到数据, svn list ...
- 【BZOJ1500】维修数列(splay)
题意: 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目.第2行包含N个数字,描述初始时的数列.以下M行,每行一条命令,格式参见问题描述中的 ...
- 转自CSDN,关于状态机
有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM--有限消息机).它把 复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理 ...
- hdu1569 方格取数 求最大点权独立集
题意:一个方格n*m,取出一些点,要求两两不相邻,求最大和.思路:建图,相邻的点有一条边,则建立了一个二分图,求最大点权独立集(所取点两两无公共边,权值和最大),问题转化为求总权和-最小点权覆盖集(点 ...
- STL优先队列模板
1. 优先队列 用途:按照某一个关键字对插入元素或删除元素后的数据集进行自动排序 复杂度: logN 2. 数据声明 (1)头文件:#include<queue> (2)声明: prio ...
- nginx原配置
#原配置 server { listen ; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main ...