转:点击打开链接
1、键盘上的斜杠键坏掉了,怎么样用快捷键进行注释呢?
首先在Xcode中注释的默认快捷键为:command+/;
其次可以自行修改快捷键:Xcode>Preferences...>Key Bindings,如下图
2、Xcode中的导航区域关闭了,如何调出来?如下图:
在工具栏的右侧有3个View选择按钮,选择第一个,左侧的导航区域就会出现,如下图中红框选中区域:
对于Xcode编程环境的讲解,推介一本书”《iOS游戏开发入门经典》,清华大学出版社出版,刘凡译“,此书的第二章有很详细的讲解。
3、Xcode中的工具栏不见了,退出Xcode后再次进来还是没有,怎么调出来呢?如下图:
如果如果工具栏可见,上图蓝色选中区域为Hide Toolbar,如果不可见,则为Show Toolbar。
4、一个View中,有一张背景图,还有几个Label与Button,但是运行时只显示背景图,没有显示Label和Button。
后来发现是背景图放在了最上层,把其他内容给挡住了。
我在这里说一下背景图的设置,我知道的有两种方式:
1)写代码:[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]]];
2)直接拖图片到xib的View上,不过图片一定要放在view的最底层,如下图:
5、怎么修改UITextField的高度?
UITextField默认的高度是没办法修改的,不过可以修改一下Border Style,如下图除了最后一种(默认)不可修改高度以外,其他三种都可以。
一般在项目中,UITextField的边框都会由UI来设计,所以选择第一种无边框即可。
6、在头文件中写如下代码时,在实现文件中调用的是哪一个blue?
1 @interface testController:UIViewController 2 { 3 buleController *bule; 4 } 5 property(nonatomic, strong) buleController *bule;
1) 直接 写 bule 的时候 是调用的@interface testController:UIViewController { buleController *bule; }这里边的blue;
2) 写 _bule 与 self.bule 的时候,调用的是 property(nonatomic, strong) buleController *bule;
_bule 的写法与@interface testController:UIViewController { buleController *bule; }调用这里边的blue类似
self.bule 是调用的 property(nonatomic, strong) buleController *bule; 的get、set方法
7、代码样式发生了变化,默认为Basic,根据个人喜好,重设为Default,如下图所示:
设置前与设置后的对比图:
设置前
设置后
也可以根据自己的喜好设置成别的。
8、.xib文件上的视图没有自动显示虚拟边框,为了方便对其,需要手动设置一下,设置方式Editor -> Canvas -> Show Bounds Rectangles,如下图所示:
设置前与设置后的对比图:
设置前
设置后
暂时就遇到这些问题,如果有新设置,再补上。以下部分是一些其他问题。
9.1、UIBarButtonItem 和 NavigationItem 的区别是什么?
UIBarButtonItem 包含在 NavigationItem里边, 就是导航条左右的那些按钮。
NavigationItem 是一个容器,它可以容纳左右按键、返回键与标题视图等。
9.2、[self.navigationBar addSubView:lable]; 和 self.navigationItem.titleView=label; 这两个等价吗?
这个不做回答,大家试一试就知道啦。遇到问题,多练习,多写代码,多试两遍就出来了,记忆还深刻呢。
10、如何在app的icon左上角显示圆形背景的数字?
在AppDelegate.m中的applicationDidEnterBackground:方法中现实,如下
/*
说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
**/
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];
}
11、NSClassFromString 类如何使用?
NSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。
正常来说,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。
比如在iPhone中,SKStoreProductViewController 可能就会出现这种情况,所以在你需要使用SKStoreProductViewController时,
最好使用:[[NSClassFromString(@"SKStoreProductViewController") .....]]
而不要直接使用 [SKStoreProductViewController ...]这种写法,因为 SKStoreProductViewController 在iOS6以下的版本并不支持。
NSClassFromString的好处是:
a 弱化连接,因此并不会把没有的Framework也link到程序中。
b 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。
12、iPhone来电的时候背后的闪光灯不停的闪
设置里面选通用,然后选辅助功能,然后关闭LED闪烁就可以了。
13、TBXML 如何遍历指定元素?
/**
TBXML 解析xml
element : 遍历指定的元素
*/
- (void) traverseElement:(TBXMLElement *)element {
do {
// 显示XML元素名称
NSLog(@"%@",[TBXML elementName:element]);
// 获取到当前节点的第一个属性
TBXMLAttribute * attribute = element->firstAttribute;
// 如果属性是有效的
while (attribute) {
// 在log窗口中显示属性的名称和值
NSLog(@"%@->%@ = %@",[TBXML elementName:element],[TBXML attributeName:attribute], [TBXML attributeValue:attribute]);
// 获取下一个属性
attribute = attribute->next;
}
// 递归遍历下一个子元素
if (element->firstChild) [self traverseElement:element->firstChild];
// 获取同级元素
} while ((element = element->nextSibling));
}
14、如何取消UITextAlignmentCenter的警告呢?烦死人了... 如下图:
修改UITextAlignmentCenter 为 NSTextAlignmentCenter
15、设置App启动页,如下图:
启动页图片分为3中像素:320*480、640*960、640*1136。
首先拖动图片到上图3中相应的位置,然后在工程的AppDelegate.m中的下列方法中设置:
/*
说明:当程序载入后执行
**/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//延时3秒,以便用户看清楚启动页
[NSThread sleepForTimeInterval:3.0];
// 添加启动页
UIImageView *splashScreen = [[UIImageView alloc] initWithFrame:self.window.bounds];
if (iPhone5) {
splashScreen.image = [UIImage imageNamed:@"Default-568h"];
}else{
splashScreen.image = [UIImage imageNamed:@"Default"];
}
[self.window addSubview:splashScreen];
// 启动页渐变效果
[UIView animateWithDuration:0.5 animations:^{
CATransform3D transform = CATransform3DMakeScale(1.0, 1.0, 1.0);
splashScreen.layer.transform = transform;
splashScreen.alpha = 0.0;
} completion:^(BOOL finished) {
[splashScreen removeFromSuperview];
}];
[self.window makeKeyAndVisible];
return YES;
}
上述代码片段中,iPhone5是一个宏定义,如下:
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
16、点击背景视图,收起输入法。
在 - (void)viewDidLoad 中添加如下代码:
// 设置 self.view GestureRecognizer
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleBackgroundTap:)]; tapRecognizer.cancelsTouchesInView = NO; [self.view addGestureRecognizer:tapRecognizer];
然后,编写 handleBackgroundTap: 方法
/*
点击背景时关闭键盘
**/
-(void)handleBackgroundTap:(UITapGestureRecognizer *)sender{
[self.userName resignFirstResponder];
[self.userPassword resignFirstResponder];
}
17、在ARC工程中使用非ARC文件时的编译设置:添加: -fno-objc-arc 方式如下。
18、获取字符串内所有匹配子字符串。
方法一:
NSString *string1=@"abcdefabcdefabcdefabcdefbcd"; NSString *string2=@"bcd"; NSArray *array=[string1 componentsSeparatedByString:string2]; NSMutableArray *arrayOfLocation=[NSMutableArray array]; int d=0; for (int i=0; i<array.count-1; i++) { NSString *string = array[i]; NSNumber *number = [NSNumber numberWithInt:d += string.length]; d += string2.length; [arrayOfLocation addObject:number]; } NSLog(@"%@", arrayOfLocation);
2014-05-01 16:56:10.085 Test[635:70b] (
1,
7,
13,
19,
24
)
方法二:NSString *str = @"abcdefabcdefabcdefabcdefbcd"; NSString *copyStr = str; while ([copyStr rangeOfString:@"bcd"].location != NSNotFound) { NSRange range = [copyStr rangeOfString:@"bcd"]; NSLog(@"location:%d", range.location); copyStr = [copyStr stringByReplacingCharactersInRange:NSMakeRange(range.location, range.length) withString:@"XXX"]; }
2014-05-01 16:56:10.083 Test[635:70b] location:1
2014-05-01 16:56:10.084 Test[635:70b] location:7
2014-05-01 16:56:10.084 Test[635:70b] location:13
2014-05-01 16:56:10.085 Test[635:70b] location:19
2014-05-01 16:56:10.085 Test[635:70b] location:24