当前位置:  编程技术>移动开发
本页文章导读:
    ▪UINavigationBar-应用总结        UINavigationBar-使用总结多视图应用程序中,我们常常使用到自定义UINavigationBar来完成导航条的设置。 1.获取导航条 UINavigationBar *navBar = self.navigationController.navigationBar; 2.设置导航条样式(使用.........
    ▪ 观察者模式之-Observable和Observer是如何实现奇妙的通知功能的        观察者模式之----Observable和Observer是怎么实现奇妙的通知功能的     不说,先给出示例代码。首先,说明一下,我这个例子里面的观察者观察了两个事件(被观察者) 报纸观察员和电视观察.........
    ▪ jquerymobile-11 在list中运用缩略图和icon       jquerymobile-11 在list中使用缩略图和icon有时候我们需要在list中的每一项上添加上缩略图,这时候我们就可以直接插入一个img标签,jquerymobile会为我们自动渲染成带缩略图的。下面看一个例子代.........

[1]UINavigationBar-应用总结
    来源: 互联网  发布时间: 2014-02-18
UINavigationBar-使用总结
多视图应用程序中,我们常常使用到自定义UINavigationBar来完成导航条的设置。

1.获取导航条

UINavigationBar *navBar = self.navigationController.navigationBar;

2.设置导航条样式(使用系统自带样式)

[navBar setBarStyle:UIBarStyleDefault];

分别有如下几种样式:
typedef NS_ENUM(NSInteger, UIBarStyle) {
    UIBarStyleDefault          = 0,
    UIBarStyleBlack            = 1,
    UIBarStyleBlackOpaque      = 1, // Deprecated. Use UIBarStyleBlack
    UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
};

从字面我们就能了解这4种样式的大概意思:
分别为:
UIBarStyleDefault:默认样式


UIBarStyleBlack:黑色


UIBarStyleBlackOpaque:黑色不透明


UIBarStyleBlackTranslucent:黑色透明
 

注意:我们发现,在后面两个标记为Deprecated,我们知道使用后面两种将不被提倡。
从枚举中,我们也可以看出:UIBarStyleBlack=1和UIBarStyleBlackOpaque=1表示为一样的。
后来,发现增加了一个方法:[navBar setTranslucent:YES];用来指示是否透明。

所以,我们使用UIBarStyleDefault和UIBarStyleBlack来定义UINavigationBar样式,并且用setTranslucent:方法来设置透明与否。

3.自定义导航条颜色

如果,仅仅使用这4种(2种样式*是否透明),难免太逊了,必须能自定义UINavigationBar样式啊。

if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
        // UIBarMetricsLandscapePhone
        [navBar setBackgroundImage:[UIImage imageNamed:@"图片名称"] forBarMetrics:UIBarMetricsDefault];
    }

setBackgroundImage方法的第二个参数,需要解释一下:

UIBarMetricsDefault:用竖着(拿手机)时UINavigationBar的标准的尺寸来显示UINavigationBar
UIBarMetricsLandscapePhone:用横着时UINavigationBar的标准尺寸来显示UINavigationBar

希望对您有所帮助!



http://blog.sina.com.cn/s/blog_7b9d64af01019zsi.html


    
[2] 观察者模式之-Observable和Observer是如何实现奇妙的通知功能的
    来源: 互联网  发布时间: 2014-02-18
观察者模式之----Observable和Observer是怎么实现奇妙的通知功能的

     不说,先给出示例代码。首先,说明一下,我这个例子里面的观察者观察了两个事件(被观察者)

报纸观察员和电视观察员。

1、报纸观察员(当publish方法被调用,观察员负责通知所有观察了他的人,告诉他们有新报纸)

package com.gzmu.observer.observable;

import java.util.Observable;


public class Publisher extends Observable {
    
    private String magazineName;
    


    public String getMagazineName() {
        return magazineName;
    }
    
    public void publish(String magazineName) {
        this.magazineName = magazineName;
        setChanged();
        notifyObservers(this);
    }
    
}


2、电视观察员当(play方法被调用,观察员负责通知所有观察了他的人,告诉他们有新电视)

package com.gzmu.observer.observable;

import java.util.Observable;

public class TVStation extends Observable {


    private String programmeName;

    public void play(String programmeName) {
        this.programmeName = programmeName;
        setChanged();
        notifyObservers(this);
    }

    public String getProgrammeName() {
        return programmeName;
    }
}


3、用户(观察者)

package com.gzmu.observer.observer;

import java.util.Observable;
import java.util.Observer;


import com.gzmu.observer.observable.Publisher;
import com.gzmu.observer.observable.TVStation;

public class Reader implements Observer {

    @Override
    public void update(Observable o, Object arg) {
        if (o instanceof Publisher) {
            Publisher p = (Publisher) o;
            System.out.println("我要订阅" + p.getMagazineName());
        }
        if (o instanceof TVStation) {
            TVStation t = (TVStation) o;
            System.out.println("我要收看" + t.getProgrammeName());
        }
    }

}


4、测试代码

package com.gzmu.observer.test;

import org.junit.Test;


import com.gzmu.observer.observable.Publisher;
import com.gzmu.observer.observable.TVStation;
import com.gzmu.observer.observer.Reader;


public class TestCase {
    
    @Test
    public void register() {
        
        Reader reader = new Reader();
        
        Publisher publisher = new Publisher();
        publisher.addObserver(reader);
        
        TVStation tvStation = new TVStation();
        tvStation.addObserver(reader);
        
        publisher.publish("Kent.Kwan的技术空间");
        
        tvStation.play("色戒");
        
    }
    
}


       说说我对观察者模式的理解。从事例开始说。我觉得最核心的就是Observable这个类。

Observable里面有一个Observer类型的数组,数组里面每个元素就是我们添加的参与

观察的对象,比如Person(实现Observer接口)。只要Observable调用了setChanged, 状态

位就会被置为true,这时候,再调用notifyObservers()就会遍历数组,然后逐个对每个observer

对象调用update方法(代码见下面),于是我们自己写的update方法(如Person里的update)

就会被调用,这里面用到了回调的方法。


分析java源代码:

 
package java.util;

public class Observable {
    private boolean changed = false;
    private Vector obs;
   
    public Observable() {
obs = new Vector();
    }

    public synchronized void addObserver(Observer o) {
        if (o == null)
            throw new NullPointerException();
if (!obs.contains(o)) {
   obs.addElement(o);
}
    }

    public synchronized void deleteObserver(Observer o) {
        obs.removeElement(o);
    }

    public void notifyObservers() {
notifyObservers(null);
    }

    public void notifyObservers(Object arg) {

        Object[] arrLocal;
   if (!changed)
                return;
            arrLocal = obs.toArray();
            clearChanged();
        }


        for (int i = arrLocal.length-1; i>=0; i--)
            ((Observer)arrLocal[i]).update(this, arg);
    }


    public synchronized void deleteObservers() {
obs.removeAllElements();
    }


 
    protected synchronized void setChanged() {
changed = true;
    }


    protected synchronized void clearChanged() {
changed = false;
    }


    public synchronized boolean hasChanged() {
return changed;
    }

 
    public synchronized int countObservers() {
return obs.size();
    }
}




    
[3] jquerymobile-11 在list中运用缩略图和icon
    来源: 互联网  发布时间: 2014-02-18
jquerymobile-11 在list中使用缩略图和icon

有时候我们需要在list中的每一项上添加上缩略图,这时候我们就可以直接插入一个img标签,jquerymobile会为我们自动渲染成带缩略图的。下面看一个例子代码:

<!DOCTYPE html>
<html>
<head>
<title>Thumbnail Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>
</head>

<body>

<div data-role="page">

	<div data-role="header">
		<h1>My Header</h1>
	</div>
	
	<div data-role="content">
		<ul data-role="listview" data-inset="true">
		<li><img src="/blog_article/ray.png"> Raymond Camden</li><!--这行没有使用A标签所以后面不会有一个小箭头,其他的都有-->
		<li><a href="/blog_article/scott.html"><img src="/blog_article/scott.png"> Scott Stroz</a></li>
		<li><a href="/blog_article/todd.html"><img src="/blog_article/todd.png"> Todd Sharp</a></li>
		<li><a href="/blog_article/dave.html"><img src="/blog_article/dave.png"> Dave Ferguson</a></li>
		</ul>
	</div>

	<div data-role="footer">
		<h4>My Footer</h4>
	</div>
		
</div>

</body>
</html>

效果如下:


第一项没有小箭头在代码中注释中有解释。

看到这个总是感觉这几个人的头像有点大了,我们只需要比较小的就可以了。这时候可以使用jquerymobile提供的一个CSS类ui-li-icon,在每个img标签中添加上这个类就可以了。修改后代码如下:

<!DOCTYPE html>
<html>
<head>
<title>Thumbnail Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>
</head>

<body>

<div data-role="page">

	<div data-role="header">
		<h1>My Header</h1>
	</div>
	
	<div data-role="content">
		<ul data-role="listview" data-inset="true">
		<li><img src="/blog_article/ray_small.png" > Raymond Camden</li>
		<li><a href="/blog_article/scott.html"><img src="/blog_article/scott_small.png" > Scott Stroz</a></li>
		<li><a href="/blog_article/todd.html"><img src="/blog_article/todd_small.png" > Todd Sharp</a></li>
		<li><a href="/blog_article/dave.html"><img src="/blog_article/dave_small.png" > Dave Ferguson</a></li>
		</ul>
	</div>

	<div data-role="footer">
		<h4>My Footer</h4>
	</div>
		
</div>

</body>
</html>

效果如下:


很简单的两个知识点。如果哪里写错了,还请指出。


    
最新技术文章:
▪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