前言
1、从DKMeituanHD项目中体会了真正的MVC思想
2、总结了谓词技术的使用例子
http://developer.dianping.com/app/tech/api
https://developer.apple.com/search/?q=headerdoc%20user%20guide%20xcode&type=Guides
正文
1、DKCategoryViewController 显示分类列表
2、API 地址
http://developer.dianping.com/app/api/v1/deal/find_deals 与服务进行交互
请求数据
https://github.com/dianping/dianping-open-sdk 签名的生成
知识总结
1、UI view的背景图片设置的方法
- (void)drawRect:(CGRect)rect
{
// 平铺
// [[UIImage imageNamed:@"bg_dealcell"] drawAsPatternInRect:rect];
// 拉伸
[[UIImage imageNamed:@"bg_dealcell"] drawInRect:rect];
}
- (void)awakeFromNib
{
[super awakeFromNib];
// 拉伸
// self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_dealcell"]];
// 平铺
// self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_dealcell"]];
}
2、UILabel 使用率autoLayout之后,如果没有约束宽度,宽度即是文字的尺寸
3、设置控制器的view支持的屏幕方向
主要用于iPad。
/**
* 返回控制器支持的方向
*/
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
遇到的问题
1、自定义控件,在xib 设置的自动布局没生效。
原因: 此控件的大小为0,因为控件默认会随着父控件的size进行调整。
解决方法:
- (void)awakeFromNib{
[super awakeFromNib];
self.autoresizingMask = UIViewAutoresizingNone;//控件从xib 进行加载的时候,可以设置autoresizingMask,避免在xib 设置控件的大小没效果。 即控件不随着父空间的size进行自动调整。这样此控件的子控件在xib 设置的自动布局将生效
}
详见:项目中的DKHomeDropdownView 类的实现。
2、modal的dismissViewControllerAnimated 执行过程
[self dismissViewControllerAnimated:YES completion:nil];// 自己的父控制器会执行dismissViewControllerAnimated 因为本质上是父控制器被modal 出来的。
具体分析:
//--- 先判断自己是不是被modal出来的,如果不是,就会调用 self.parentViewController的dismissViewControllerAnimated.如果是,就dismiss自己
由此启发了一个工具类的诞生:提供一套modal一个webView控制器的工具类
3、Apple’s HeaderDoc
xcode8已经集成在里面了,快捷键是option + command + /
快速注释。
headerdoc2html -o OutputDirectory InputDirectory
因此目前不需要:https://github.com/onevcat/VVDocumenter-Xcode
4、 查看Xcode的uuid
bogon:Developer devzkn$ defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
5、完整地保留服务器返回数字的小数位数
/** 如果想完整地保留服务器返回数字的小数位数(没有小数\1位小数\2位小数等),那么就应该用NSNumber ,而不是int 、float*/
/** 团购包含商品原价值 */
@property (strong, nonatomic) NSNumber *list_price;