当前位置:  编程技术>移动开发
本页文章导读:
    ▪用HorizontalScrollView格局实现类似Gallery效果        用HorizontalScrollView布局实现类似Gallery效果先看效果如下: 我们看一下布局如下:<?xml version="1.0" encoding="utf-8"?> <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layo.........
    ▪ 大亨争云存储祭免费旗 或重演视频业消耗战        巨头争云存储祭免费旗 或重演视频业消耗战 “我本人就是Dropbox的重度用户。在美国的时候,我家里最夸张的时候一共有六台电脑在用,我经常为了找不到某个文件到底放在哪台电脑里而头.........
    ▪ 解析UITableViewCell的reuse有关问题       解析UITableViewCell的reuse问题UITableView在iOS开发中会经常使用,对于行数很多的UITableView,可以通过UITableViewCell的重用,来保证执行效率。源码下载点击这里。 我们通过代码来探索UITableViewCell重.........

[1]用HorizontalScrollView格局实现类似Gallery效果
    来源: 互联网  发布时间: 2014-02-18
用HorizontalScrollView布局实现类似Gallery效果
先看效果如下:
我们看一下布局如下:
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
	 android:layout_width="match_parent"
	 android:orientation="horizontal"
	 android:layout_height="wrap_content">
	 <!-- by  lixiaodaoaaa welcome to my Blog :http://blog.csdn.net/lixiaodaoaaa -->
	 <!--腾讯微博 欢迎关注:http://t.qq.com/lixiaodaoaaa/ -->
	<LinearLayout 
	     android:layout_marginTop="40dp"
	     android:layout_marginBottom="40dp"
	     android:orientation="horizontal"
		 android:layout_width="match_parent" 
		 android:layout_height="match_parent">
		 <ImageView 
	     	 android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:background="@drawable/item1"
		 />
		 <ImageView 
	     	 android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:background="@drawable/item2"
		 />
		 <ImageView 
	     	 android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:background="@drawable/item3"
		 />
		 <ImageView 
	     	 android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:background="@drawable/item4"
		 />
		 <ImageView 
	     	 android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:background="@drawable/item5"
		 />
	</LinearLayout>
</HorizontalScrollView>
将任意的ACtivity设置为此布局即可。首先这个HorizontalScrollView应设计android:orientation="horizontal "通常包含一个LineaLayout布局。这样子可以包含到里面。同样的LineaLayout的布局方向也设置为horizontal 很简单。慢慢学不急哦。
 

    
[2] 大亨争云存储祭免费旗 或重演视频业消耗战
    来源: 互联网  发布时间: 2014-02-18
巨头争云存储祭免费旗 或重演视频业消耗战

“我本人就是Dropbox的重度用户。在美国的时候,我家里最夸张的时候一共有六台电脑在用,我经常为了找不到某个文件到底放在哪台电脑里而头痛,Dropbox的出现让我觉得它正是我想要的东西。”王淮顿了顿,接着说道,“不过,即便是这样,我也不是它的付费用户。”

王淮曾是Facebook的早期员工,2011年9月离开Facebook之后回国成为天使投资人。他对南都记者说的这段话,既证明了云存储服务在个人市场上真真实实存在的需求,也说出了这一市场的尴尬所在。

前期的服务器架设已然烧掉了大量资金,但个人用户的付费习惯还没有养成,再加上国内的几家互联网和IT巨头纷纷祭出“免费”大旗。云存储领域的竞争会像当年的视频行业一样,成为一场比拼资本实力、“剩者为王”的资源消耗战吗?

内外厮杀云存储

一年多前,美国云存储公司Dropbox的用户数在短短半年多时间里翻了五倍的消息,带热了国内云存储领域的创业潮。不过,与其他版本的“CopytoChina”故事不同的是,在云存储这块沙场上厮杀的,不光有诸如最早的115网盘、酷盘、云诺、坚果云等一众创业小团队,还挤进了包括百度、腾讯、华为、金山、360在内的多家互联网和IT“巨头”。

在众多被热捧的创业概念中,巨头们为什么独独对“云”趋之若鹜呢?

Pre Angel投资人王利杰向南都记者解释,随着智能手机、平板电脑等多种智能终端的普及,个人用户所拥有的数据量正在成几何倍数增长,无论是从存储的安全性,还是随取随用的便利性上来说,将数据上传存储到云端而非进行本地收藏,已是大势所趋。

换句话说,当人们习惯用不同的终端随时随地调取储在云端的数据时,存储着大量数据的云就成了整个移动互联网的基础,而“谁拥有云,谁才能真正称得上是在移动互联网上占据了一席之地”,这就是任何一家大公司都不愿意错过“云”机会的根本原因。

在海外市场上,亚马逊、谷歌、微软等几家大公司早在数年之前就开始打造云计算的基础。以亚马逊为例,其在2006年利用自身其他服务的剩余资源面向开发者推出的S3云存储服务,由于其使用方式极为灵活,用户可以真正做到“用多少资源付多少钱”,才使得诸如Dropbox这样的创业公司能够“轻资产”起步,基于S3为个人用户提供文件同步和分享服务。同时,Dropbox本身又是开放的,可以对接各类更垂直细分的应用,从而形成了一个立体的“云”生态。

然而,国内的市场情况却截然不同。根据北大市场与媒介研究中心的一份调查报告所说,“云”概念自2008年左右被引入国内,但真正开始在市场中加以应用和普及却是等到了2010年底。对于大公司来说,云本身的重要性,加上错过了最初的发展时机,让他们更急于推出一个“高大全”的云服务平台,将从基础设施到终端产品,甚至包括垂直应用一网打尽,同时再祭出“免费”大旗来吸引个人用户,试图将整个市场快速推起。

但这对创业公司来说,却是内外叠加的双重打击。一方面,他们不像Dropbox等海外同行一样有“巨人的肩膀”可踏,必须自己投入大量的前期资金购置服务器与带宽;另一方面,巨头们带动的“免费”热潮,更削减了国内个人用户对付费服务的热情。即使创业公司有强大的融资能力做依托,允许其投入大量资金,在短期内将市场需求撕开一道口子,起码在三五年内也无法将烧出去的钱重新赚回来,这无论是为其之后的续融资还是整体的商业模式都画上了一个大大的问号。


    
[3] 解析UITableViewCell的reuse有关问题
    来源: 互联网  发布时间: 2014-02-18
解析UITableViewCell的reuse问题

UITableView在iOS开发中会经常使用,对于行数很多的UITableView,可以通过UITableViewCell的重用,来保证执行效率。源码下载点击这里。

我们通过代码来探索UITableViewCell重用的实现,下面是一段使用UITableView的代码,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"myCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell == nil) {
        
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewStyleGrouped reuseIdentifier:@"myCell"];
        UITextField *tf;
        tf = [[UITextField alloc] initWithFrame:CGRectMake(100, 10, 150, 40) ];
        tf.delegate = self;
        tf.borderStyle = UITextBorderStyleRoundedRect;
        [cell  addSubview:tf];
        [tf release];
        
        cell.textLabel.text = [NSString stringWithFormat:@"%d",indexPath.row];
    }
    
    // Configure the cell...
    
    return cell;
}
我们期待的是上下拖动UITableView,结果是这样


然而结果确实我们上下拖动后,都是


我们回到dequeueReusableCellWithIdentifier的定义

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier;  // Used by the delegate to acquire an already allocated cell, in lieu of allocating a new one.
使用委托来获取一个已经分配的cell,代替分配新的一个;在这个例子中,将当前屏幕下创建的Cell都先加入到对象池,这是对象池的內Cell的个数大致是8,当我们滑动TableView时,将使用dequeueReusableCellWithIdentifier方法返回对象,该方法通过

reuseIdentifier(“myCell”)在对象池中,查找之前已经放入的cell对象。

这时候就有了第一个,既然它重用出问题,就不让它重用,代码如下

NSString *CellIdentifier = [NSString stringWithFormat:@"myCell_%d",indexPath.row];
对于每一行,设定不同的reuseIdentifier。


CocoaTouch的开发人员也很与时俱进,在iOS6.0,终于有了新的方法

 //ios 6.0
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 static NSString *CellIdentifier = @"myCell";
 
 [tableView registerClass:[UITableViewCell class]  forCellReuseIdentifier:CellIdentifier];
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

 UITextField *tf;
 tf = [[UITextField alloc] initWithFrame:CGRectMake(100, 10, 150, 40) ];
 tf.delegate = self;
 tf.borderStyle = UITextBorderStyleRoundedRect;
 [cell  addSubview:tf];
 [tf release];
 
 cell.textLabel.text = [NSString stringWithFormat:@"%d",indexPath.row];
 // Configure the cell...
 
 return cell;
 }
我们先注册cell,然后再通过

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0); // newer dequeue method guarantees a cell is returned and resized properly, assuming identifier is registered

问题快被解决了,但是程序员总是有很多问题,比如现在的代码下,如果我们在UITextField输入了对应于textLabel的值(1、2、3、4。。。),再向下拖动,再拖回原来的位置,还可以看到UITextField內的数字么?我测试的结果是不能,我这里给出一个我的解决方法

     //添加目标动作对,使其值改变时,自动保存至变量
     [tf addTarget:self action:@selector(tfChange) forControlEvents:UIControlEventEditingDidEnd];


大致完成了对解析UITableViewCell的reuse问题的分析。




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