当前位置:  编程技术>移动开发
本页文章导读:
    ▪十个你必须知道的jQueryMobile代码片段        10个你必须知道的jQueryMobile代码片段 原创文章,转载请注明: 转载自http://www.yiiyaa.net/ 本文链接地址:http://www.yiiyaa.net/1426 0、jQuery Mobile生命周期函数必须在 jQuery Mobile脚本加载之前声明,.........
    ▪ UIView的layoutSubviews跟drawRect方法何时调用        UIView的layoutSubviews和drawRect方法何时调用 首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。     layoutSubviews在以下情况下会被调用:   1、init初始化不会触发layoutS.........
    ▪ 磁贴 & 磁贴通报       磁贴 & 磁贴通知 //选择模版 XmlDocument largeTileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage01); //添加文字说明 XmlNodeList largetextdata = largeTileData.Get.........

[1]十个你必须知道的jQueryMobile代码片段
    来源: 互联网  发布时间: 2014-02-18
10个你必须知道的jQueryMobile代码片段

原创文章,转载请注明: 转载自http://www.yiiyaa.net/

本文链接地址:http://www.yiiyaa.net/1426

0、jQuery Mobile生命周期函数必须在 jQuery Mobile脚本加载之前声明,否则会完全不起作用!

拿“mobileinit”来说,我一开始的时候这样写,坑爹的是jqm根本没有任何反应!

<script src="/blog_article/Jquery.js"></script>

<script src="/blog_article/Jquery-mobile.js"></script> 

<script type="text/javascript">

$(document).bind("mobileinit", function(){

 alert("jquery mobile");

}); 

</script> 

正确的写法:

<script src="/blog_article/Jquery.js"></script>

<script type="text/javascript">

$(document).bind("mobileinit", function(){

 alert("jquery mobile");

}); 

</script>

<script src="/blog_article/Jquery-mobile.js"></script>

 

 

1、在列表项和按钮上禁用文本截断
如果你的列表项或者按钮上是一个很长的文本,它将会被jQuery Mobile自动截断,要禁用这个截断设置,需要在CSS选择器上添加属性"white-space:normal"。例如,在按钮禁止截断:
.ui-btn-text{
white-space:normal;
}
在列表项上禁止截断:
.ui-li-desc{
white-space:norma;
}
应用自动截断,在元素上面设置"white-space:normal:nowrap"。

 

2、在页面加载时随机显示背景
jQuery Mobile拥有一系列在页面加载时触发的初始化事件,下面是每次页面加载完成后随机显示一个背景。
CSS如下:
.my-page { background: transparent url(/images/bg.jpg) 0 0 no-repeat; }
.my-page.bg1 { background: transparent url(/images/bg-1.jpg) 0 0 no-repeat; }
.my-page.bg2 { background: transparent url(/images/bg-2.jpg) 0 0 no-repeat; }
.my-page.bg3 { background: transparent url(/images/bg-3.jpg) 0 0 no-repeat; }
JavaScript如下:
$('.my-page').live("pagecreate", function() {
var randombg = Math.floor(Math.random()*4); // 0 to 3
$('.my-page').removeClass().addClass('bg' + randombg);
});
3、禁用按钮
$('#home-button').button("disable");
设置按钮可用
$('#home-button').button("enable");
4、禁止加载时弹出信息
每次加载一个不同的页面时都会触发弹出消息,确实很烦人,要禁用这种情况的发生,添加如下代码
$.mobile.pageLoading(true);
默认情况下是可见的
$.mobile.pageLoading();
5、自定义主题
jQuery Mobile框架有5款主题,主题A,主题B,主题C,主题D和主题E。但你也可以轻松为你的web app
创建一个主题。步骤如下:
(1)从jQuery Mobile CSS文件中复制任何一个主题粘贴到你自己的CSS文件中。
(2)给你的主题和CSS选择器合理命名。例如,你复制了主题C,而你想命名你的主题为主题Z,重命名.ui-btn-up-c为.ui-btn-up-z等等。
(3)、修改自定义主题的颜色和样式
(4)、应用你的自定义主题到任一元素上,仅需设置data-theme属性为z,例如:
<div data-role="page" data-theme="z">
6、应用自定义字体
你当用jQuery Mobile构建一个web app时,想用一些特殊字体,你会发现用@font-face自定义字体是一个令人相当满意的方法。
7、创建一个没有文本只有图片的按钮
有时,你可能想用一个没有文本内容仍具有按钮特性的一个按钮。要在按钮上隐藏文本,设置data-iconpos="notext",例如:
<a href="/index.html" data-icon="grid" claa="ui-btn-right" data-iconpos="notext">Home</a>
8、打开一个无需使用Ajax页面过渡的超链接
<a href="/index.html" data-icon="grid" rel="external">Home</a>
9、移除项目列表中的箭头
默认情况下,jQuery Mobile框架会为每一个列表项添加一个箭头,想要禁用箭头显示,需要在你想要移除列表项设置data-icon="false"。
<li data-icon="false"><a href="/blog_article/contact.html">Contact Us</a></li>
10、设置页面的背景颜色
怎样在不修改jQuery Mobile样式下设置一个页面背景颜色的?听起来很简单,其实需要花几分钟时间才能解决。通常情况下,你需要在body元素中设置背景颜色,但是用jQuery Mobil框架,你需要设置在ui-page类中。
.ui-page{
background:#eee;
}

 
<!-- Begin anyShare -->

    
[2] UIView的layoutSubviews跟drawRect方法何时调用
    来源: 互联网  发布时间: 2014-02-18
UIView的layoutSubviews和drawRect方法何时调用

首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。

 

 

layoutSubviews在以下情况下会被调用:

 

1、init初始化不会触发layoutSubviews。
2、addSubview会触发layoutSubviews。
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。
4、滚动一个UIScrollView会触发layoutSubviews。
5、旋转Screen会触发父UIView上的layoutSubviews事件。
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。
7、直接调用setLayoutSubviews。
 
drawRect在以下情况下会被调用:

 

1、如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。drawRect 掉用是在Controller->loadView, Controller->viewDidLoad 两方法之后掉用的.所以不用担心在 控制器中,这些View的drawRect就开始画了.这样可以在控制器中设置一些值给View(如果这些View draw的时候需要用到某些变量 值).
2、该方法在调用sizeToFit后被调用,所以可以先调用sizeToFit计算出size。然后系统自动调用drawRect:方法。
3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:。
4、直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,但是有个前提条件是rect不能为0。
以上1,2推荐;而3,4不提倡
 
drawRect方法使用注意点:

 

1、 若使用UIView绘图,只能在drawRect:方法中获取相应的contextRef并绘图。如果在其他方法中获取将获取到一个invalidate 的ref并且不能用于画图。drawRect:方法不能手动显示调用,必须通过调用setNeedsDisplay 或 者 setNeedsDisplayInRect,让系统自动调该方法。
2、若使用calayer绘图,只能在drawInContext: 中(类似于drawRect)绘制,或者在delegate中的相应方法绘制。同样也是调用setNeedDisplay等间接调用以上方法
3、若要实时画图,不能使用gestureRecognizer,只能使用touchbegan等方法来调用setNeedsDisplay实时刷新屏幕

    
[3] 磁贴 & 磁贴通报
    来源: 互联网  发布时间: 2014-02-18
磁贴 & 磁贴通知
 //选择模版
            XmlDocument largeTileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage01);

            //添加文字说明
            XmlNodeList largetextdata = largeTileData.GetElementsByTagName("text");
            XmlNodeList imagedata = largeTileData.GetElementsByTagName("image");

            largetextdata[0].InnerText = "F#ck Day!";

            largetextdata[1].InnerText = "What a F#cking Day?";
            
            //设置图片
            ((XmlElement)imagedata[0]).SetAttribute("src","ms-appx:///images/1024.png");


            //微标 文字以及图片
            XmlDocument smalltiledate = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquarePeekImageAndText02);
            XmlNodeList smallTileText = smalltiledate.GetElementsByTagName("text");
            XmlNodeList smallTileImage = smalltiledate.GetElementsByTagName("image");
            smallTileText[0].InnerText = "Cao Egg";
            smallTileText[1].InnerText = "I'm F#cker in there";
            ((XmlElement)smallTileImage[0]).SetAttribute("src", "ms-appx:///images/1024.png");

            //合并两个到一个<visual> XML节点
            IXmlNode newNode = largeTileData.ImportNode(smalltiledate.GetElementsByTagName("binding").Item(0), true);

            largeTileData.GetElementsByTagName("visual").Item(0).AppendChild(newNode);

            //创建通知
            TileNotification notification = new TileNotification(largeTileData);
            //多少秒以后移除
            notification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(30);

            //发送通知
            TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);


精简
XmlDocument tileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock);

            XmlNodeList textData = tileData.GetElementsByTagName("text");

            textData[0].InnerText = "10";
            textData[1].InnerText = "Days of Me";

            TileNotification notification = new TileNotification(tileData);

 //为通知设置到期时间
            //默认情况下,本地磁贴和锁屏提醒不会过期,推送通知、定期通知、激活通知会在三天之后过期。
            //最好通过使用一个对你的应用有意义的时间设置过期时间,对于本地磁贴和锁屏提醒通知尤其如此。
            //磁贴内容的保留时间应不长于内容具有相关性的时间。
            //在这种情况下,该通知将在十分钟内到期并从磁贴中删除。
            notification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(20);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);



计划磁贴通知
 //指定模板
            TileTemplateType tileTemplate = TileTemplateType.TileWideImageAndText01;

            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(tileTemplate);
            
            //提供通知内容

            //设置文字
            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
            tileTextAttributes[0].InnerText = "Hello"+Guid.NewGuid().ToString().Substring(0,5)+" World!!!!!";

            //设置图片
            XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///images//1024.png");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");

            //小瓷贴模版。
            XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04);
            //设置文字
            XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");
            squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode("Hello " + Guid.NewGuid().ToString().Substring(0, 5) + " World。。。。"));

            //绑定
            IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);
            //插入
            tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

            //指定应传递通知的时间
            //Int16 dueTimeInHours = 3;
            //DateTime dueTime = DateTime.Now.AddHours(dueTimeInHours);

            DateTime dueTim1e = DateTime.Now.AddSeconds(10);

            //创建计划的磁贴通知对象
            ScheduledTileNotification scheduledTile = new ScheduledTileNotification(tileXml, dueTim1e);

            //为计划的磁贴通知赋予 ID
            scheduledTile.Id = "Future_Tile";
            
            //向计划中添加磁贴通知。
            TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(scheduledTile);


磁贴通知队列
 //设置选项以启用通知循环
            TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);
            //创建磁贴通知
            TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImageAndText01);
            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock);

            // TODO: Fill in the template with your tile content.
            // TODO: Define a square tile and add it to tileXML.

            TileNotification tileNotification = new TileNotification(tileXml);
            /*
             * 启用队列时,最多可在磁贴上自动循环显示五个磁贴通知。
             * 默认情况下,队列中通知的替换策略是先进先出 (FIFO);
             * 当队列排满且到达新通知时,最早的通知将被删除。
             * 请注意,通知显示顺序不遵守严格的线性模式。
             * 用户可看到通知的顺序与其到达时的顺序并不相同。
             */
            //授予通知标记
            tileNotification.Tag = "stockMSFT";
            //向磁贴发送通知
            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);


清除磁贴通知
 Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().Clear();


参考实例:http://code.msdn.microsoft.com/windowsapps/app-tiles-and-badges-sample-5fc49148/

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
编程技术 iis7站长之家
▪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