Daily Archives: 2014年8月9日

iOS6创建iOS7风格导航导,导航条自动添加返回按钮

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0) {
 
        // 1、修改导航条样式
        UINavigationBar *bar = [UINavigationBar appearance];
        // 修改导航条背景
        [bar setBackgroundImage:[UIImage imageNamed:@"navigationbar_background.png"] forBarMetrics:UIBarMetricsDefault];
        // 修改导航条文字样式
        [bar setTitleTextAttributes:@{
                                      UITextAttributeTextColor : [UIColor blackColor],
                                      UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
                                      }];
 
 
        // 2、修改导航条按钮样式
        UIBarButtonItem *item = [UIBarButtonItem appearance];
 
        UIImage *normal = [UIImage imageNamed:@"navigationbar_button_background.png"];
        UIImage *highlight = [UIImage imageNamed:@"navigationbar_button_background_pushed.png"];
 
        // 修改导航条按钮背景
        [item setBackgroundImage:normal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
        [item setBackgroundImage:highlight forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
 
        // 修改导航条按钮文字样式
        [item setTitleTextAttributes:@{
                                       UITextAttributeTextColor : kBlueColor,
                                       UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero],
                                       } forState:UIControlStateNormal];
        [item setTitleTextAttributes:@{
                                       UITextAttributeTextColor : kBlueColor,
                                       UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
                                       } forState:UIControlStateHighlighted];
 
        [item setBackButtonBackgroundImage:normal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
        [item setBackButtonBackgroundImage:highlight forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
 
        // 3、修改状态栏样式
        [UIApplication sharedApplication].statusBarHidden = NO;
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
 
    }
}
 
#pragma mark - 2、代理方法
#pragma mark 2.1、控制器将要视图显示
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // 在未自定义导航条返回键的情况下,iOS6及以下版本设备导航条自动添加仿iOS7返回按钮(根控制器例外)
    if (!(viewController == navigationController.viewControllers.firstObject || [(RMBaseVCtrl *)viewController isCustomNBI]) && [viewController isKindOfClass:[RMBaseVCtrl class]]){
 
        // 栈控制器数组
        NSArray *vcs = navigationController.viewControllers;
 
        // 前一个控制器序号
        int penultimate = (int)vcs.count - 2;
 
        if (penultimate >= 0) {
 
            // 前一个控制器标题[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2014/08/09/232925559.html">继续阅读</a></p>

创建带样式的字符串AttributedString(富文本)

1
2
3
4
+ (id)stringWithDefaultStyle:(NSString *)string kern:(CGFloat)kernValue
{
    NSNumber *kern = [NSNumber numberWithFloat:kernValue];
    NSNumber *und[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2014/08/09/232821615.html">继续阅读</a></p>

UITextField调整内容位置及左右视图LeftView、RightView

1
2
3
4
5
// 清除按钮左移一个单元
- (CGRect)clearButtonRectForBounds:(CGRect)bounds
{
    CGRect rect = [super clearButtonRectForBounds:bounds];
    if (_isReservedRightV[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2014/08/09/232329612.html">继续阅读</a></p>