IOS项目中的细节处理,如更改状态栏等等

一,状态栏更改为白色

 

1 在info.plist中添加一个字段:view controller -base status bar 为NO


2 在需要改变状态栏颜色的ViewController中在ViewDidLoad方法中增加:
[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

如果需要在全部View中都变色,可以写在父类的相关方法中,或者写到AppDelegate中。

 

二 :去除navigationbar 底部黑线 ——亲测可用

    if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){

        NSArray *list=self.navigationController.navigationBar.subviews;

        for (id obj in list) {

            if ([obj isKindOfClass:[UIImageView class]]) {

                UIImageView *imageView=(UIImageView *)obj;

                NSArray *list2=imageView.subviews;

                for (id obj2 in list2) {

                    if ([obj2 isKindOfClass:[UIImageView class]]) {

                        UIImageView *imageView2=(UIImageView *)obj2;

                        imageView2.hidden=YES;

                    }

                }

            }

        }

    }

 

 
标签: iOS , 开发
 三:
何时使用imageNamed方法

 1、采用imageNamed方法的图片加载情况

     图片资源反复使用到,如按钮背景图片的蓝色背景,这些图片要经常用到,而且占用内存少

 2、不应该采用的情况:

 (1)图片一般只使用一次,如一些用户的照片资源

(2)图片资源较大,加载到内存后,比较耗费内存资源

 

四  Unix时间转换

复制代码
    NSNumber  *dateStr = [data valueForKey:@"lastLogTime"];
    
    double unixTimeStamp = [dateStr doubleValue];
    NSTimeInterval _interval=unixTimeStamp;
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
    NSDateFormatter *_formatter=[[NSDateFormatter alloc]init];
    [_formatter setLocale:[NSLocale currentLocale]];
    [_formatter setDateFormat:@"dd.MM.yyyy"];
    NSString *_date=[_formatter stringFromDate:date];
复制代码

 或者:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[obj printAllPropertys];
nameLabel.text = [obj valueForKey:@"empName"];
orgLabel.text = [obj valueForKey:@"orgName"];
positionLabel.text = [obj valueForKey:@"position"];
cellPhoneLabel.text = [obj valueForKey:@"cellphone"];
 
NSString  *dateNumber = [obj valueForKey:@"lastLogTime"];
NSLog(@"dateNumber%@",dateNumber);
 
 
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy/mm/dd   hh:mm:ss"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[dateFormatter setTimeZone:timeZone];
//[dateFormatter setLocale:[NSLocale currentLocale]];
 
 
double unixTimeStamp = [dateNumber doubleValue];
NSTimeInterval _interval=unixTimeStamp;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
timeStr=[dateFormatter stringFromDate:date];
NSLog(@"loginTime:%@,_interval:%@",timeStr,dateNumber);

  

五,ios获取app版本号和项目名称

1
2
NSString *executableFile = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleExecutableKey];    //获取项目名称
NSString *version =  [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]; //获取项目版本号

 

 

 浅谈IOS版本号:http://segmentfault.com/a/1190000002423661

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NSString *deviceID  = (NSString*) [[UIDevice currentDevice] identifierForVendor];//设备id
// NSString *deviceID   =   [UIApplication sharedApplication] uuid];
NSString *systemVersion   =  [[UIDevice currentDevice] systemVersion];//系统版本
NSString *systemModel    =  [[UIDevice currentDevice] model];//是iphone 还是 ipad
NSDictionary *dic    =   [[NSBundle mainBundle] infoDictionary];//获取info-plist
NSString *appName  =   [dic objectForKey:@"CFBundleIdentifier"];//获取Bundle identifier
NSString *appVersion   =   [dic valueForKey:@"CFBundleVersion"];//获取Bundle Version
NSDictionary *userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:
deviceID, @"deviceID",
systemVersion, @"systemVersion",
systemModel, @"systemModel",
appName, @"appName",
appVersion, @"appVersion",nil];
 
NSLog(@"dic:%@",userInfo);

 

 

六,修改SearchBar的取消按钮的字体

///#begin
//
//功能描述:修改SearchBar的Cancel Button 的Title
//  注意点:
//       使用iOS8 SDK ,本次 UISearchBar适用于iOS7(+)版本,如果想要适配iOS6,则需要对应适配iOS6.
//  例如:
//      iOS7+ :     for(id cc in [searchBar.subviews[0] subviews]){}
//      iOS7- :     for(id cc in [searchBar subviews]){}
//  
///#end

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    for(id cc in [searchBar.subviews[0] subviews])
    {
        if([cc isKindOfClass:[UIButton class]])
        {
            UIButton *btn = (UIButton *)cc;
            [btn setTitle:[AppLanguageProcess getLanguageWithKey:@"TEXT_CANCEL"]  forState:UIControlStateNormal];
            [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        }
    }
}   

 

 

 

    

 

 

 待续

 

posted @   尘恍若梦  阅读(250)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示