- 但凡以view开头的方法,先调用super方法
- 方法有File,必须用到路径
[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
- 除开图片之外的其他资源,都用
mainBundle
- 获取
1到x之间
的整数:int value = (arc4random() % x) + 1;
arc4random_uniform(100)
生成0~100之间的随机整数。 - 字符串创建控制器,不用import头文件
[[NSClassFromString(@"homeVC") alloc] init];
- 输出两位的数字 不够时用0补齐
NSLog(@"%02d" ,1); → 01
- 一个像素尺寸的图片
1 / [UIScreen mainScreen].scale
- 修改Tabbar Item的属性
// 修改标题位置
self.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, -10);
// 修改图片位置
self.tabBarItem.imageInsets = UIEdgeInsetsMake(-3, 0, 3, 0);
// 批量修改属性
for (UIBarItem *item in self.tabBarController.tabBar.items) {
[item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"Helvetica" size:19.0], NSFontAttributeName, nil]
forState:UIControlStateNormal];
}
// 设置选中和未选中字体颜色
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
//未选中字体颜色
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor]} forState:UIControlStateNormal];
//选中字体颜色
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor cyanColor]} forState:UIControlStateSelected];
-
MJExtension
字典转模型
// 模型属性名和字典中的key有冲突时时替换
+ (NSDictionary *)mj_replacedKeyFromPropertyName
{
return @{
@"Id" : @"id",
@"desc" : @"desciption",
@"oldName" : @"name.oldName",
@"nowName" : @"name.newName",
@"nameChangedTime" : @"name.info[1].nameChangedTime",
@"bag" : @"other.bag"
};
}
// 属性里的数组类型
@property(nonatomic, strong) NSArray * users;
+ (NSDictionary *)mj_objectClassInArray
{
return @{
@"users":@"User",// 或者
// @"users":[User class],
};
}
- 打包发布
-
Edit Scheme
→run状态下设置Release模式
- 模拟器一定选
真机
-
comm+B
编译,Products文件下的app红色变黑色,找到它 - 拷贝到
Payload
文件夹,压缩成zip - 后缀名zip改为
ipa
-
直接把app拖到在iTunes的
应用程序
界面,找到它就打包好了
- 添加东西到项目,先
comm+B
一下看有没有错
一个cell对应一个xib,不管有多么相同
plist文件名不要包含Info
给控制器传递数据,不能在重写模型的方法里,他先执行,别的还没创建
——直接用模型
把照片存到相册中:
(1)UIImageWriteToSavedPhotosAlbum(image, nil , nil , nil );
不需要回调,上下文也不需要传
涉及到隐私,会提示
(2)没有名称,又不好去取出来?
使用图片选择器UIImagePickerController,实现代理方法
??写到沙盒
- 把照片保存到模拟器相册
-(void)viewDidLoad {
[super viewDidLoad];
for (int index=1; index<11; index++) {
NSString *imgName=[NSString stringWithFormat:@"%d.jpg", index];
UIImage *img=[UIImage imageNamed:imgName];
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);
}
}
开发常识
状态栏高度:20
导航栏高度:44
cell的默认高度:44
UITabBar默认高度:49
高度64这样写死了好不好?如果是横屏的话,有可能是44
navigationBar竖屏下默认高度44,横屏下默认高度32
屏幕尺寸
1.屏幕大小
iPhone4做原型时,320×480
iPhone5做原型时,320×568
iPhone6做原型时,375×667
iPhone6Plus原型,414×736
2.屏幕分辨率
iPhone4的显示分辨率,640×960
iPhone5的显示分辨率,640×1136
iPhone6的显示分辨率,1334×750
iPhone6 Plus显示为,1920×1080
页面不添加标记进行一次性判断
if (objc_getAssociatedObject(self, _cmd)) {
NSLog(@"已经加载过啦");
} else {
objc_setAssociatedObject(self, _cmd, @"Launch", OBJC_ASSOCIATION_RETAIN);
NSLog(@"第一次加载");
}