开发中总结的一些小的知识点,陆续更新中
2016-03-18 13:49
211 查看
1⃣️
__VA_ARGS__
在GNU C中 红可以接受可变数目的参数 就像函数一样
可以把
__VA_ARGS__看成是将赋值给该宏
//注意这里不能在函数中调用abc()
#include <stdio.h>
#include <stdarg.h>
#define ABC(...) printf(__VA_ARGS__)
/*void abc(...)
{
//printf(__VA_ARGS__);
}*/
int main()
{
ABC("%s\n","hello");
return 0;
}
宏是可以接受可变参数 而不是用函数(函数中涉及的可变数目参数问题需要用到va_list)
另外 是一个可变参数的宏 这个宏是在新的C99规范中新增的 目前似乎只有gcc支持(VC6.0的编译器不支持) 宏前面加上##的作用在于 当这个可变参数的个数为0时,这里的##起到把前面多余的””去掉的作用力 否则会编译出错
2⃣️
2) __FILE__ 宏在预编译时会替换成当前的源文件名
3) __LINE__宏在预编译时会替换成当前的行号
4) __FUNCTION__宏在预编译时会替换成当前的函数名称
3⃣️
IOS
alpha导致subview也透明了(opacity)
当要背景颜色透明的时候,alpha导致subview也透明了解决方法
(相当于改变uicolor的透明属性)
1.xib中的background color 选others 里面有个opacity
2.代码:backgroundColor = [uicolor colorwithRed:xx green:xx blue:xx alpha:xx];
4⃣️
size_t在32位系统中是四字节的,在64位系统中是8字节 可以使用这个类型增加程序的移植性
size_t一般用来表示一种计数,比如有多少东西被拷贝等。例如:sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适于计量内存中可容纳的数据项目个数的无符号整数类型”。所以,它在数组下标和内存管理函数之类的地方广泛使用。
5⃣️
opaque透明
6⃣️
MBProgressHUD中定义的MBProgressHUDMode枚举,它用来表示HUD窗口的模式
typedefenum{//
使用UIActivityIndicatorView来显示进度,这是默认值
MBProgressHUDModeIndeterminate,//
使用一个圆形饼图来作为进度视图
MBProgressHUDModeDeterminate,//
使用一个水平进度条
MBProgressHUDModeDeterminateHorizontalBar,//
使用圆环作为进度条
MBProgressHUDModeAnnularDeterminate,//
显示一个自定义视图,通过这种方式,可以显示一个正确或错误的提示图
MBProgressHUDModeCustomView,//
只显示文本
MBProgressHUDModeText}MBProgressHUDMode;
一个MBProgressHUD视图主要由四个部分组成:
loading动画视图 标题文本框(label) 详情文本框(detailsLabel) HUD背景框
@property (MB_STRONG) UIColor *activityIndicatorColor;
dimBackground,用于为HUD窗口的视图区域覆盖上一层径向渐变(radial gradient)层,其定义如下:
@property (assign) BOOL dimBackground;
MBProgressHUD提供了几个属性,可以让我们控制HUD的布局,这些属性主要有以下几个:
需要注意的是,MBProgressHUD视图会充满其父视图的frame内,为此,在MBProgressHUD的layoutSubviews方法中,还专门做了处理,如下代码所示:
7⃣️
UIActivityIndicatorView
1.初始化的时候不需要设置尺寸 设置尺寸也没有效果
2.必须调用startAnimating才会显示UIActivityIndicatorView
// 初始化指示器
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
// 设置指示器位置
indicator.center = CGPointMake(self.view.frame.size.width * 0.5, self.view.frame.size.height * 0.5);
// 开启动画,必须调用,否则无法显示
[indicator startAnimating];
[self.view addSubview:indicator];
8⃣️
__nullable和__nonnull。从字面上我们可以猜到,__nullable表示对象可以是NULL或nil,而__nonnull表示对象不应该为空。
9⃣️
简单点说就是automaticallyAdjustsScrollViewInsets根据按所在界面的status bar,navigationbar,与tabbar的高度,自动调整scrollview的 inset,设置为no,不让viewController调整。
self.automaticallyAdjustsScrollViewInsets=NO;
// 这个方法目的:根据所在界面的bar
navigationbar与tabbar的高度,自动调整scrollView的inset,设置为no,不让viewController调整问题在于:自定义了一个navigationbar,因系统自动判断并适配,改为no才能实现相应的效果
__VA_ARGS__
在GNU C中 红可以接受可变数目的参数 就像函数一样
可以把
__VA_ARGS__看成是将赋值给该宏
//注意这里不能在函数中调用abc()
#include <stdio.h>
#include <stdarg.h>
#define ABC(...) printf(__VA_ARGS__)
/*void abc(...)
{
//printf(__VA_ARGS__);
}*/
int main()
{
ABC("%s\n","hello");
return 0;
}
宏是可以接受可变参数 而不是用函数(函数中涉及的可变数目参数问题需要用到va_list)
另外 是一个可变参数的宏 这个宏是在新的C99规范中新增的 目前似乎只有gcc支持(VC6.0的编译器不支持) 宏前面加上##的作用在于 当这个可变参数的个数为0时,这里的##起到把前面多余的””去掉的作用力 否则会编译出错
2⃣️
2) __FILE__ 宏在预编译时会替换成当前的源文件名
3) __LINE__宏在预编译时会替换成当前的行号
4) __FUNCTION__宏在预编译时会替换成当前的函数名称
3⃣️
IOS
alpha导致subview也透明了(opacity)
当要背景颜色透明的时候,alpha导致subview也透明了解决方法
(相当于改变uicolor的透明属性)
1.xib中的background color 选others 里面有个opacity
2.代码:backgroundColor = [uicolor colorwithRed:xx green:xx blue:xx alpha:xx];
4⃣️
size_t在32位系统中是四字节的,在64位系统中是8字节 可以使用这个类型增加程序的移植性
size_t一般用来表示一种计数,比如有多少东西被拷贝等。例如:sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适于计量内存中可容纳的数据项目个数的无符号整数类型”。所以,它在数组下标和内存管理函数之类的地方广泛使用。
5⃣️
opaque透明
6⃣️
MBProgressHUD中定义的MBProgressHUDMode枚举,它用来表示HUD窗口的模式
typedefenum{//
使用UIActivityIndicatorView来显示进度,这是默认值
MBProgressHUDModeIndeterminate,//
使用一个圆形饼图来作为进度视图
MBProgressHUDModeDeterminate,//
使用一个水平进度条
MBProgressHUDModeDeterminateHorizontalBar,//
使用圆环作为进度条
MBProgressHUDModeAnnularDeterminate,//
显示一个自定义视图,通过这种方式,可以显示一个正确或错误的提示图
MBProgressHUDModeCustomView,//
只显示文本
MBProgressHUDModeText}MBProgressHUDMode;
一个MBProgressHUD视图主要由四个部分组成:
loading动画视图 标题文本框(label) 详情文本框(detailsLabel) HUD背景框
// 背景框的透明度,默认值是0.8 @property (assign) float opacity; // 背景框的颜色 // 需要注意的是如果设置了这个属性,则opacity属性会失效,即不会有半透明效果 @property (MB_STRONG) UIColor *color; // 背景框的圆角半径。默认值是10.0 @property (assign) float cornerRadius; // 标题文本的字体及颜色 @property (MB_STRONG) UIFont* labelFont; @property (MB_STRONG) UIColor* labelColor; // 详情文本的字体及颜色 @property (MB_STRONG) UIFont* detailsLabelFont; @property (MB_STRONG) UIColor* detailsLabelColor; // 菊花的颜色,默认是白色
@property (MB_STRONG) UIColor *activityIndicatorColor;
dimBackground,用于为HUD窗口的视图区域覆盖上一层径向渐变(radial gradient)层,其定义如下:
@property (assign) BOOL dimBackground;
MBProgressHUD提供了几个属性,可以让我们控制HUD的布局,这些属性主要有以下几个:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // HUD相对于父视图中心点的x轴偏移量和y轴偏移量 @property (assign) float xOffset; @property (assign) float yOffset; // HUD各元素与HUD边缘的间距 @property (assign) float margin; // HUD背景框的最小大小 @property (assign) CGSize minSize; // HUD的实际大小 @property (atomic, assign, readonly) CGSize size; // 是否强制HUD背景框宽高相等 @property (assign, getter = isSquare) BOOL square; |
1 2 3 4 5 6 7 8 9 10 11 | - (void)layoutSubviews { [ super layoutSubviews]; // Entirely cover the parent view UIView *parent = self.superview; if (parent) { self.frame = parent.bounds; } ... } |
UIActivityIndicatorView
1.初始化的时候不需要设置尺寸 设置尺寸也没有效果
2.必须调用startAnimating才会显示UIActivityIndicatorView
// 初始化指示器
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
// 设置指示器位置
indicator.center = CGPointMake(self.view.frame.size.width * 0.5, self.view.frame.size.height * 0.5);
// 开启动画,必须调用,否则无法显示
[indicator startAnimating];
[self.view addSubview:indicator];
8⃣️
__nullable和__nonnull。从字面上我们可以猜到,__nullable表示对象可以是NULL或nil,而__nonnull表示对象不应该为空。
9⃣️
简单点说就是automaticallyAdjustsScrollViewInsets根据按所在界面的status bar,navigationbar,与tabbar的高度,自动调整scrollview的 inset,设置为no,不让viewController调整。
self.automaticallyAdjustsScrollViewInsets=NO;
// 这个方法目的:根据所在界面的bar
navigationbar与tabbar的高度,自动调整scrollView的inset,设置为no,不让viewController调整问题在于:自定义了一个navigationbar,因系统自动判断并适配,改为no才能实现相应的效果
相关文章推荐
- c# 浮点型Decimal处理
- tomcat 启动错误 Error listenerStart org.apache.catalina.LifecycleException: Failed to start component
- iOS计时器NSTimer的使用
- 软件测试—— junit 单元测试
- 拖拽 DIV 效果
- 简明python教程 --C++程序员的视角(八):标准库
- jre和mysql和jak的关联
- c++和maven和c++的关联
- nginx和word和groovy的关联
- jak和perl和udp的关联
- 放出几个珍藏多年的延时函数(高低精度高低性能)
- for循环不加退出条件、equals的作用
- 【CodeForces 651A】Joysticks 模拟
- Android逆向分析基础-反破解技术
- 做数学一定要是天才吗?
- web页面开发相关基础
- web前端面试题
- tcp和linux和tcp的关联
- 简明python教程 --C++程序员的视角(七):异常
- linux和tcp和android的关联