当前位置:  编程技术>移动开发
本页文章导读:
    ▪NSString-NSDate类型转换跟CustomBar的总结        NSString-NSDate类型转换和CustomBar的总结 如何将一个字符串@"2012-12-21"转换成NSDate模式 新的SDK貌似不再支持 [NSDate initWithString]这个方法 那么现在应该如何转换呢,以下代码 NSString --> NSDate: NS.........
    ▪ 稽查并提醒用户设置网络(一)        检查并提醒用户设置网络(一)源代码参见: http://write.blog.csdn.net/postedit/8195438 但是有些不妥当,修正如下: onClick()中的处理不正确,如下: if (!flag) { AlertDialog.Builder builder = new AlertDialog.Builder(this); .........
    ▪ sp跟wp指针用法分析       sp和wp指针用法分析涉及的源文件 frameworks\base\include\utils\RefBase.h frameworks\base\include\utils\Atomic.h frameworks\base\libs\utils\RefBase.cpp   RefBase类是android native中所有类的基类 sp类是strong pointer wp类是weak p.........

[1]NSString-NSDate类型转换跟CustomBar的总结
    来源: 互联网  发布时间: 2014-02-18
NSString-NSDate类型转换和CustomBar的总结

如何将一个字符串@"2012-12-21"转换成NSDate模式

新的SDK貌似不再支持 [NSDate initWithString]这个方法

那么现在应该如何转换呢,以下代码

NSString --> NSDate:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

NSDate *tempDate = [dateFormatter dateFromString:@"2012-12-21"];

NSDate --> NSString:

NSDate *date = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

NSString *dateAndTime = [dateFormatter stringFromDate: date];

今日关于自定义UITabBarController的CustomBar的类库,

遇到一系列诡异的动画效果以及之前没有注意的问题

首先,CustomBar 继承了UITabBarController

并且拥有相应的显示 和 隐藏 等方法

方法展示如下

Objectiv-c代码 :
  • // 隐藏tabbar  
  • - (void) hideCustomTabBar{  
  •     for(UIView *view in self.view.subviews){  
  •         if([view isKindOfClass:[UIImageView class]]||[view isKindOfClass:[MKNumberBadgeView class]]||[view isKindOfClass:[UIButton class]]){  
  •             view.hidden = YES;  
  •         }  
  •     }  
  •     slideBg.hidden=YES;  
  • }  
  • Oc代码:  
  • - (void) showCustomTabBar{  
  •     for(UIView *view in self.view.subviews){  
  •         if([view isKindOfClass:[UIImageView class]]||[view isKindOfClass:[MKNumberBadgeView class]]||[view isKindOfClass:[UIButton class]]){  
  • //            [UIView beginAnimations:nil context:nil];  
  • //            [UIView animateWithDuration:0.3 animations:nil];  
  •             view.hidden = NO;  
  •         }  
  •     }  
  •     slideBg.hidden=NO;  
  • }   
  • 在调用上面的隐藏方法的时候,并不能将tabbar全部隐藏,还留下一条白色不可用区域(tabbar区域)。

    如何将其全部隐藏呢?除了调用上述隐藏方法之外,还需要在push的时候调用

    hidesBottomBarWhenPushed方法,代码如下

     

    Oc代码:  
  • ReadViewController *read = [[ReadViewController alloc] init];  
  • read.hidesBottomBarWhenPushed = YES;  
  • [self.navigationController pushViewController:read animated:YES];  
  • [read release];  
  • 这样就能将其全部隐藏了

    ---------------------------------------以下是本人遇到的匪夷所思的问题------------------

          如果你在隐藏tabbar的页面中(举个例子,你从文章列表页push到文章阅读页,为了用户阅读体验较好,你需要用以上方法隐藏tabbar,但是在阅读之前,你还需要判断用户是否登陆、或者说是否拥有阅读该篇文章的权限。)这个时候你若想用presentModalViewController的方式弹出登陆页面,那么轻无比将 上述显示tabbar方法中的的那两行已注释掉的代码,务必进行注释,不然在用户进行dismissModalViewControllerAnimated的时候,tabar会已诡异的方式从屏幕的最上方滑下来。注释掉之后虽然问题初步解决,但我始终不明白的额是为什么这个tabbar会跑到上面去。


        
    [2] 稽查并提醒用户设置网络(一)
        来源: 互联网  发布时间: 2014-02-18
    检查并提醒用户设置网络(一)

    源代码参见:

    http://write.blog.csdn.net/postedit/8195438

    但是有些不妥当,修正如下:

    onClick()中的处理不正确,如下:

    if (!flag) {
    			AlertDialog.Builder builder = new AlertDialog.Builder(this);
    			builder.setIcon(android.R.drawable.ic_dialog_alert);
    			builder.setTitle("网络状态");
    			builder.setMessage("当前网络不可用,是否设置?");
    			builder.setPositiveButton("确定",
    					new DialogInterface.OnClickListener() {
    						@Override
    						public void onClick(DialogInterface dialog, int which) {
    							ComponentName comp = new ComponentName(
    									"com.android.settings",
    									"com.android.settings.WirelessSettings");
    							Intent mIntent = new Intent();
    							mIntent.setComponent(comp);
    							mIntent.setAction("android.intent.action.VIEW");
    							startActivity(mIntent);
    						}
    					});
    			
    			  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {	                
    	                @Override
    	                public void onClick(DialogInterface dialog, int which) {
    	                    dialog.cancel();
    	                }
    	            });
    			  
    			 builder.create();
    	         builder.show();			
    		}
    


    修改如下:

    if (android.os.Build.VERSION.SDK_INT > 10) {
    	context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
    } else {
    	context.startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
    }


     


        
    [3] sp跟wp指针用法分析
        来源: 互联网  发布时间: 2014-02-18
    sp和wp指针用法分析

    涉及的源文件

    frameworks\base\include\utils\RefBase.h

    frameworks\base\include\utils\Atomic.h

    frameworks\base\libs\utils\RefBase.cpp

     

    RefBase类是android native中所有类的基类

    sp类是strong pointer

    wp类是weak pointer

     

    简略实例分析

    class A :public RefBase

    {

    }

     

    int main()

    {

        A* pA = new A();-----------------------(1)

    {

        sp<A> spA(pA);------------------------(2)

        wp<A> wpA(pA);-----------------------(3)

    }

    ------------------------------------------------(4)

    }

     

    (1)构建对象pA-------------------------------------------->我们称之为实际对象

    1>查看RefBase的构造函数

    RefBase::RefBase()
        : mRefs(new weakref_impl(this))
    {
    //    LOGV("Creating refs %p with RefBase %p\n", mRefs, this);
    }

    同时,构建了一个mRefs对象---------------------->我们称之为影子对象

    2>查看weakref_impl的构造函数

        weakref_impl派生于RefBase的内部类weakref_type

        weakref_impl(RefBase* base)
            : mStrong(INITIAL_STRONG_VALUE)----------------->sp 引用计数
            , mWeak(0)---------------------------------------------------->wp引用计数
            , mBase(base)------------------------------------------------>实际对象,也就是pA
            , mFlags(0)
            , mDestroyer(0)
        {
        }

     

    (2)sp引用spA

    成员变量m_ptr---------------->实际对象,也就是pA

    mWeak == 1

    mStrong==1

     

    (3)wp引用对象wpA

    成员变量m_ptr--------------->实际对象,也就是pA

    m_refs-------------------------->影子对象,也就是mRefs

    mWeak=1;

     

    (4)析构spA,wpA

    至此,mStrong==1, mWeak==2

    mStrong==0时,delete 实际对象pA

    mWeak==0时,delete影子对象mRefs


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3