现在iOS新建项目工程时,window 默认情况下是以 Main.storyboard 中 initial view controller, 在项目中,如果需要通过代码控制 window 的 rootViewController , 可以通过如下方法:

1
2
3
4
5
6
7
8
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
RootViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"RootViewController"];
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
Continue reading

+ initialize+ loadNSObject 类的两个类方法,它们会在运行时自动调用,我们可以利用其特性做一些初始化操作。

可以先思考如下示例控制台应该输出什么:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//父类
@interface People : NSObject
@end
@implementation People
+ (void)initialize {
NSLog(@"%@ , %s", [self class], __FUNCTION__);
}
@end

//子类
@interface Student : People
@end
@implementation Student
+ (void)load {
NSLog(@"%@ , %s", [self class], __FUNCTION__);
}
@end

启动并运行程序,控制台应输出什么呢,见结尾处。

Continue reading

项目中经常会遇到限制UITextField中输入字符数的需求,并且会根据输入的英文还是中文给出不同的限定数,本文记录其解决方案。

对于全英文的输入限定很简单,但是输入中文时,当输入拼音但未选择中文时,此时输入文本框的文字会包括输入的拼音,是选中的状态,比如这样:

输入中文时包含选中状态的拼音
输入中文时包含选中状态的拼音

上面的情况如果打印UITextField的text属性会输出:中国di zhi。由于拼音是选中状态的,那么可以根据 UITextInput 协议判断UITextField中是否有选中状态的字符,从而决定是否对输入字符进行截断处理。

Continue reading

项目会遇到给各种UI控件添加渐变背景色的需求,如果只是上下渐变或者左右渐变,可以使用Xcode xcassets的Slicing功能或者 api

- resizableImageWithCapInsets:

完成功能,但是如果是从左上角到右下角的渐变,或者是右上角到左下角渐变,使用截图恐怕不能完成。下面介绍一种生成渐变颜色UIImage的方法,从而可以使用UIColor的api

+ (UIColor *)colorWithPatternImage:(UIImage *)image

来设置背景色。

Continue reading

iOS UI开发的过程会遇到使用Hex Color创建UIColor,例如创建颜色为 R:60 G:180 B:174 的UIColor,使用UIColor的api可以使用如下的方式:

[UIColor colorWithRed:51/255.0f green:167/255.0f blue:158/255.0f alpha:1];

上述UIColor的十六进制的表示为0x3CB4AE, 使用0xFF来表示alpha值,使用ARGB的形式拼合成0xFF3CB4AE, 那么可以使用如下方式创建UIColor:

[UIColor colorWithHex:0xFF3CB4AE]

实现方式如下:

Continue reading
Author's picture

CaryaLiu

@Chengdu


iOS Developer


Chengdu