码迷,mamicode.com
首页 > 其他好文 > 详细

去除警告,打电话,发信息,应用程序之间跳转,打印沙盒路径,字符串名字转换方法,包装导航控制器等的代码

时间:2015-12-12 21:40:09      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:

 

从偏好设置中读取值:

技术分享

打电话代码:

技术分享

发信息代码:

技术分享

打印沙盒路径代码:

技术分享

应用程序之间跳转代码:

技术分享

跳转到苹果商店代码:

技术分享

去除警告代码:

技术分享

根据字符串名称转换成相对应方法的代码:

#import "SZMSettingsCell.h"

@implementation SZMSettingsCell

//选择不同的cell类型
+ (UITableViewCellStyle)cellStyleWithDict:(NSDictionary *)dict{
    
    UITableViewCellStyle cellStyle = UITableViewCellStyleDefault;
    
    if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleSubtitle"]) {
        cellStyle = UITableViewCellStyleSubtitle;
    }else if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleValue1"]){
        cellStyle = UITableViewCellStyleValue1;
    }else if ([dict[@"cellStyle"]isEqualToString:@"UITableViewCellStyleValue2"]){
        cellStyle = UITableViewCellStyleValue2;
    }
    return cellStyle;
    
}


+ (instancetype)settingsCellWithTableView:(UITableView *)TableView withDict: (NSDictionary *)dict{
    
    static NSString *ID = @"id";
    SZMSettingsCell *cell = [TableView dequeueReusableCellWithIdentifier:ID];
    if (cell == nil) {
        cell = [[SZMSettingsCell alloc]initWithStyle:[self cellStyleWithDict:dict] reuseIdentifier:ID];
    }
    return cell;
}

- (void)setItem:(NSDictionary *)item{
    _item = item;
    
    //给cell设置文字
    self.textLabel.text = item[@"title"];
    //给cell设置图片
    if (item[@"icon"]) {
        self.imageView.image = [UIImage imageNamed:item[@"icon"]];
    }
    //给cell详细信息
    if (item[@"details"] && [item[@"details"] length] > 0) {
        self.detailTextLabel.text = item[@"details"];
        //判断cell的详细信息文字是否需要变为红色
        if (item[@"isHighlighted"]) {
            self.detailTextLabel.textColor = [UIColor redColor];
        }
    }
    
    //判断当前cell中的details信息,是否在偏好设置中已经设置好了
    if (item[@"detailsKeyName"]) {
        //从偏好设置中读取存储的内容
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        
        NSString *text = [defaults objectForKey:item[@"detailsKeyName"]];
        
        //如果存储的内容不为空
        if (text) {
            self.detailTextLabel.text = text;
        }
    }
    
    //设置右侧的accessoryview
    if (item[@"accessory"]) {
        //根据配置文件中的字符串(item[@"accessory"]在plist文件中对应的字符串)来创建对应的类
        Class accessoryCalss = NSClassFromString(item[@"accessory"]);
        
        //创建这个类型的对象
        id obj = [[accessoryCalss alloc]init];
        
        if ([obj isKindOfClass:[UIImageView class]]) {
            //表示是图片框
            UIImageView *imgView = (UIImageView *)obj;
            imgView.image = [UIImage imageNamed:item[@"accessoryImage"]];
            //调整图片框与图片大小相同
            [imgView sizeToFit];
        }
        
        //设置cell的accessoryView为动态的创建的这个类型
        self.accessoryView = obj;
        
        //判断如果是开关,注册一个valueChange事件
        if ([obj isKindOfClass:[UISwitch class]]) {
            UISwitch *switcher = (UISwitch *)obj;
            [switcher addTarget:self action:@selector(swithcValueChanged:) forControlEvents:UIControlEventValueChanged];
            
            //从偏好设置中读取开关的值,并设置
            NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
            //读取
            switcher.on = [userDefault boolForKey:self.item[@"keyName"]];
        }
        
    }
}

- (void)swithcValueChanged:(UISwitch *)sender{
    //获取开关的状态
    //把开关状态保存到偏好设置中
    NSUserDefaults *userDefu = [NSUserDefaults standardUserDefaults];
    [userDefu setBool:sender.isOn forKey:self.item[@"keyName"]];
    [userDefu synchronize];
    
}
- (void)setTime:(NSString *)str{
    self.detailTextLabel.text = str;
    //把时间交给偏好设置进行记录
    NSUserDefaults *userDefu = [NSUserDefaults standardUserDefaults];
    [userDefu setObject:str forKey:self.item[@"detailsKeyName"]];
    [userDefu synchronize];
}

 

把一个控制器包装成导航控制器的代码:

技术分享

 

去除警告,打电话,发信息,应用程序之间跳转,打印沙盒路径,字符串名字转换方法,包装导航控制器等的代码

标签:

原文地址:http://www.cnblogs.com/ZMiOS/p/5041751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!