-
1、在运行程序时候出现iPhone xx doesn’t match any of XXX.app’s targeted device families. You can expand XXX.app’s targeted device families to support iPhone xx.
意思是说你运行的项目所需要的设备和当前选中的设备不匹配。解决方法
targets
1)、项目的targets---》General-----》Deployment Info -----》device 选中和你手机匹配的选项。上面有3个选项iPhone (手机运行项目)iPad (iPad运行项目) Universal(手机和iPad都可以运行项目) 根据自己的情况选择。
2)、在路径(targets---》General-----》Deployment Info -----》device)中查看项目默认选择的设备类型。用与之匹配的设备运行项目。 - 2、UIButton 添加倒计时功能后会一闪一闪的 原因
把button的type改成custom就可以了 -
3、在项目中遇到一个需求: 一个页面上半部分用原生控件(图1绿色部分)下半部分由于是大段的文字又带有html标签和图片所以用webview展示(图1红色部分)。如下图
按理说这种页面应该直接写成h5页面的,但是我们前端紧张所以用这种布局方式展示。这里就会遇到一个问题,怎么设置webview的高度正好和内容的高度一样。这里用到一个UIWebView的代理 - (void)webViewDidFinishLoad:(UIWebView*)webView
在这个方法中获取 webview的contentSize (webView中其实包含一个scrollView)
[self.webView.scrollView contentSize].height,就可以获取高度。
- 4、向上取整用函数ceil()返回不小于x的最小整数值
ceil()括号里的内容必须是浮点数。
NSInteger rows =ceil(10/3);
这个时候返回的rows是3。因为10 和3 都是整数,相除之后还是整数。
NSInteger rows =ceil(10/3.0);
这个时候返回的是4 。因为3.0是个浮点型的。所以相除之后也是浮点。向上取整就是4。 - 5、打印导航栏子视图
// 获取子视图
- (void)getSub:(UIView *)view andLevel:(int)level {
NSArray *subviews = [view subviews];
if ([subviews count] == 0) return;
for (UIView *subview in subviews) {
NSString *blank = @"";
for (int i = 1; i < level; i++) {
blank = [NSString stringWithFormat:@" %@", blank];
}
NSLog(@"%@%d: %@", blank, level, subview.class);
[self getSub:subview andLevel:(level+1)];
}
}
例如打印导航栏的子视图
[self getSub:self.navigationController.navigationBar andLevel:1];
- 6、错误提示“control reaches end of non-void block”
意思是这个block不是void类型的需要有个返回值。 - 7、在appdelegate中获取当前的nav方法有两种
1、如果是用UINavigationController来组织页面结构的话可以使用
UINavigationController *nav = (UINavigationController*)self.window.rootViewController;
UIViewController *currentVC = nav.visibleViewController;
2、如果是用UITabBarController来组织页面结构的话
UINavigationController *nav = ((UITabBarController*)appDelegate.window.rootViewController);
UIViewController *currentVC = nav.selectedViewController;