当前位置:  编程技术>移动开发
本页文章导读:
    ▪不安于室_实训版        红杏出墙__实训版 红杏出墙__实训版   ......
    ▪ UIScrollView 的根本用法 横向滚动        UIScrollView 的基本用法 横向滚动 参考贴1: UIScrollView 的基本用法 横向滚动 2012-05-07 14:13:51| 分类: ios开发 | 标签:ios scrollview |字号大中小 订阅   come from:http://unmi.cc/use-uiscrollview iPhone/iP.........
    ▪ ListView分隔线的展示       ListView分隔线的显示 项目中需要在listview中添加footview 出现了两个问题  1.footview点击报错 空指针 好解决 在itemclickListener中判断位置即可  2.footview本应隐藏消失的 却显示了分隔线 在stackoverfl.........

[1]不安于室_实训版
    来源: 互联网  发布时间: 2014-02-18
红杏出墙__实训版

红杏出墙__实训版

 


    
[2] UIScrollView 的根本用法 横向滚动
    来源: 互联网  发布时间: 2014-02-18
UIScrollView 的基本用法 横向滚动
参考贴1: UIScrollView 的基本用法 横向滚动

2012-05-07 14:13:51| 分类: ios开发 | 标签:ios scrollview |字号大中小 订阅

 
come from:http://unmi.cc/use-uiscrollview

iPhone/iPad 中 UIScrollView 还是经常要用到的,这里作了一个使用它最简单的例子,一个 ScrollView 中放了三个 UIView。这三个 UIView 分别设置了不同的背景色,它们在 ScrollView 中可以一页一页的滚动。

这段代码放在 UIViewController 的 viewDidLoad 方法中执行的,请注意每个 Frame 和 ScrollView 的关键属性,如 contentSize。ScrollView 中按页滚动时每次走动一个 ScrollView 的宽度(横向时) 或高度(纵向时)。看下面两张图:

  

第一张图是用属性 contentOffset 设置的第二个 View 为起努 View,中间例如为向左滚动时,默认出现滚动条,第三张图为滚动到了红色面板,注意每个 View 间的缝隙,也是用来作为 View 周围边距的。

上面效果的代码如下,已加上了详细的注释:

- (void)viewDidLoad
{
[super viewDidLoad];
 
//设定 ScrollView 的 Frame,逐页滚动时,如果横向滚动,按宽度为一个单位滚动,纵向时,按高度为一个单位滚动
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 0, 210, 100)];
scrollView.backgroundColor = [UIColor grayColor]; // ScrollView 背景色,即 View 间的填充色
 
//向 ScrollView 中加入第一个 View,View 的宽度 200 加上两边的空隙 5 等于 ScrollView 的宽度
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(5,5,200,90)];
view1.backgroundColor = [UIColor redColor];
[scrollView addSubview:view1];
 
//第二个 View,它的宽度加上两边的空隙 5 等于 ScrollView 的宽度,两个 View 间有 10 的间距
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(215,5,200,90)];
view2.backgroundColor = [UIColor greenColor];
[scrollView addSubview:view2];
 
//第三个 View
UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(425,5,200,90)];
view3.backgroundColor = [UIColor blueColor];
[scrollView addSubview:view3];
 
[self.view addSubview:scrollView];
 
//这个属性很重要,它可以决定是横向还是纵向滚动,一般来说也是其中的 View 的总宽度,和总的高度
//这里同时考虑到每个 View 间的空隙,所以宽度是 200x3+5+10+10+5=630
//高度上与 ScrollView 相同,只在横向扩展,所以只要在横向上滚动
scrollView.contentSize = CGSizeMake(630, 100);
 
//用它指定 ScrollView 中内容的当前位置,即相对于 ScrollView 的左上顶点的偏移
scrollView.contentOffset = CGPointMake(210, 0);
 
//按页滚动,总是一次一个宽度,或一个高度单位的滚动
scrollView.pagingEnabled = YES;
}

 

不像 UIView 有相应的 UIViewController,UIScrollView 没有相对应的 UIScrollViewController,但 UIScrollView 也有事件,只是您需要自己来指定 UIScrollView 的 Delegate 才行,这个 Delegate 要应用协议 UIScrollViewDelegate 的方法。

关于 ScrollView 的一些属性可以在 Xcode 代码提示中看到,也可以在 Interface Builder 中看到,以及每一个属性的默认取值是什么也一目发然,如下图为 Xib 中某个 ScrollView 的属性面板:

参考:1. UIScrollView 原理详解

本文链接 http://unmi.cc/use-uiscrollview, 来自 隔叶黄莺 Unmi Blog

 

参考贴2:

实现带预览和分页的图片浏览功能, 类似AppStore详情页
By looyao on 2012 年 6 月 21 日 来源:looyao's blog

标题可能有点让人看不懂, 的确, 我实在很难抽象出一个好的标题, 下面我来详细描述下场景.
当我们打开AppStore, 点击进入详细应用页面时, 可以看到App的截图, 左边和右边分别可以看到相邻图片的一部分, 看似实现起来比较简单, 使用UIScrollView就可以了, 但是如果设置了UIScrollView的pagingEnabled, 就需要多考虑下了.

1. 首先要考虑UIScrollView的width值是多少.

当UIScrollView的pagingEnabled为YES时, 每次自动滚动UIScrollView本身的宽度(我们要实现的是横向滚动), 我们需要让每次滚动结束之后一个图片在中间的位置. 看下边我标记过的截图(其实我是个海贼控, 嗯.).

UIScrollView的width值应该为z, 一次分页滚动后可以剩余x个像素宽度可见. 假设我们要显示的图片宽度为224, 每个图片间隔为20, 则
x + y = 224
z = x + y + 20= 244, z就是UIScrollView的宽度.

把UIScrollView居中放置, 通过设置clipsToBounds让超出UIScrollView的部分显示出来.

_scrollView.clipsToBounds = NO;

这样基本效果就出来了, 但是有一个问题, 超出UIScrollView的部分虽然可见了, 但是不可以通过这部分滑动UIScrollView.

2. 解决超出UIScrollView部分不触发滑动的问题.

解决这个的办法是利用UIView的 – hitTest:withEvent: 方法. 首先重写一个类继承自UIView, 滚动图片的UIScrollView放在这个自定义的view上, 重写UIView的 – hitTest:withEvent:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
return _scrollView; //把所有事件都交给UIScrollView来处理, 这样超出UIScrollView的部分也可以触发滑动了.
}

这样所有的功能就都实现了, 代码我已经提交到了github.com, 需要完整代码的点击这里.

 

第二篇确实给了很大的帮助,转载后谢谢博主


    
[3] ListView分隔线的展示
    来源: 互联网  发布时间: 2014-02-18
ListView分隔线的显示

项目中需要在listview中添加footview 出现了两个问题 

1.footview点击报错 空指针 好解决 在itemclickListener中判断位置即可 

2.footview本应隐藏消失的 却显示了分隔线 在stackoverflow发现下面这段话 一下发现了解决办法

写道
The ListView implementation in Android never draws dividers between items that are disabled, which if you are just calling the addFooterView(View v) method then by default your footer will be.

Instead you need to call the addFooterView(View v, Object data, boolean isSelectable) method with isSelectable set to true. You can just pass null for the data object if you don't need it.

 当初加footview时就没注意还有一个方法 上面那段话大意是listview从来不会主动的加入分隔线 只当内容可以点击时才会加上

所以在加入footview时设置为不可选即可 可以同时解决上面2个问题

 

还有一种情况下 如果没有设置adapter的情况加载了footView 此时调用

listView.removeFooterView(footView);

 会报空指针 但实际上listview和footview都不为空 解决方法是

 设置adapter以后再进行removeFooterView的操作 再没有报空的问题


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