- 浏览: 915234 次
- 性别:
- 来自: 湖北—》上海
最新评论
-
miketwais:
janyee2012 写道楼主在不,请问下面这句配置在disc ...
cas实现单点登录,登出(java和php客户端) -
f5528710:
IOS 利用UIScrollview实现滑动筛选 -
卡卡欧克:
php 客户端 不能和 java 客户端 同时登录 怎么办
cas实现单点登录,登出(java和php客户端) -
duanyutian:
大神 我加0 或者\n都没有用 和mina的通信有没有注意点 ...
ios socket AsyncSocket使用 -
周聪龙:
楼主,我按照你的那个配置之后,怎么反而不能登录了,我以前只是简 ...
cas 3.4登录成功返回用户更多信息
在ios中经常会用到滑动筛选的功能,如下:
利用UIScrollview控件可以实现上述功能,思路大致是:创建一个UIView,宽度为屏幕宽度320,高度为以上图的背景图高度,在UIView上添加一个
UIScrollView宽度为一个类型的宽度,设置UIscrollView自动停止滚动,设置两边被遮盖的区域可见,將类型添加到UIScrollview中,并设置他们的位置,这样效果是有了,但是这个时候只能在UISCrollview上滑动,即上图中间一块区域,要实现两边都可以滑动,需要重写UIView 的hitTest,將UIView两边的滑动事件交给UIScrollview即可。当然这样也可以实现类似Safari浏览器的多试图切换的效果。下面直接上示例代码:
TopscrollView.h的代码如下:
#import <UIKit/UIKit.h>
@protocol TopScrollViewDelegate;
@interface TopScrollView : UIView<UIScrollViewDelegate>{
UIScrollView *scrollview;
id <TopScrollViewDelegate> _delegate;
}
@property(retain,nonatomic)UIScrollView *scrollview;
@property(retain,nonatomic)id <TopScrollViewDelegate> delegate;
@end
@protocol TopScrollViewDelegate <NSObject>
@required
//UIScrollView 滑动结束事件代理
- (void)TopScrollView:(TopScrollView *)foodTopView pageIndex:(NSInteger)pageIndex;
@end
TopscrollView.m 代码
#import "TopScrollView.h"
const CGFloat topScrollObjHeight = 38.0;
const CGFloat topScrollObjWidth = 101.0;
const NSUInteger topNumImages = 6;
@implementation TopScrollView
@synthesize scrollview;
@synthesize delegate=_delegate;
//设置UIScrollview子试图的frame和可滚动区域
- (void)layoutTopScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [scrollview subviews];
CGFloat curXLoc = 0;
for (view in subviews)
{
if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
{
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;
curXLoc += (topScrollObjWidth);
}
}
[scrollview setContentSize:CGSizeMake((topNumImages * topScrollObjWidth), [scrollview bounds].size.height)];
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(110, 0, 101, 39)];
[scrollview setCanCancelContentTouches:NO];
scrollview.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollview.clipsToBounds = NO; //是否溢出
scrollview.scrollEnabled = YES;
scrollview.pagingEnabled = YES; //是否自动停止
scrollview.showsHorizontalScrollIndicator=NO; //是否显示水平滚动条
scrollview.delegate=self;
NSMutableArray *title=[[NSMutableArray alloc]initWithObjects:@"开胃菜",@"主餐类",@"主食",@"火锅",@"甜点",@"茶饮", nil];
NSUInteger i;
for (i = 1; i <= topNumImages; i++)
{
NSString *imageName = [NSString stringWithFormat:@"food_top_sigle_bg.png"];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
CGRect rect = imageView.frame;
rect.size.height = topScrollObjHeight;
rect.size.width = topScrollObjWidth;
imageView.frame = rect;
imageView.tag = i;
UILabel *lable=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 101, 39)];
lable.text=[title objectAtIndex:(i-1)];
lable.textColor=[UIColor colorWithRed:131/255.0 green:147/255.0 blue:89/255.0 alpha:1];
lable.font=[UIFont fontWithName:@"Helvetica" size:17];
lable.backgroundColor=[UIColor clearColor];
lable.textAlignment=UITextAlignmentCenter;
[imageView addSubview:lable];
[scrollview addSubview:imageView];
[imageView release];
}
[self addSubview:scrollview];
[scrollview release];
[title release];
[self layoutTopScrollImages];
}
return self;
}
//这里將整个UIView区域的事件都交给UIScrillView
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (CGRectContainsPoint(CGRectMake(0,0,320,39), point)) {
return scrollview;
}
return [super hitTest:point withEvent:event];
}
- (void)dealloc
{
[scrollview release];
[super dealloc];
}
//滑动结束,即类型切换时更新内容
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
int index=self.scrollview.contentOffset.x/topScrollObjWidth+1;
if ([_delegate respondsToSelector:@selector(FoodTopScrollView:pageIndex:)]) {
[_delegate FoodTopScrollView:self pageIndex:index];
}
}
@end
发表评论
-
Xcode8下载与安装iOS模拟器
2016-11-14 10:52 1936由于天朝的网络环境,在macOS中安装体积较大的软件,都会遭 ... -
AFNetWorking 3.0 用法
2016-10-28 14:48 9561、文件下载 AFHTTPSessionManager ... -
iOS开发 适配iOS10以及Xcode8
2016-09-19 10:35 758现在在苹果的官网上 ... -
CocoaPods安装和使用教程
2015-05-27 11:09 1003首先需要mac电脑上安装ruby环境系统需求Mac OS X ... -
IOS UIImagePickerController 不能全屏
2015-01-06 23:27 6024添加以下代码可以使取景框全屏 CGSize scre ... -
openfire 插件开发
2014-07-23 11:51 5257最近在做openfire的ios推送插件,下面介绍下ope ... -
openfire3.9.3导入eclipse
2014-07-21 17:00 6862最近在用openfire开发ios通讯功能,需要开发一个推送 ... -
ios 处理圆角图片拉伸
2014-06-26 09:33 2672类似9patch效果的iOS图 ... -
使用Xcode和Instruments调试解决iOS内存泄露
2014-05-21 09:00 1147虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关 ... -
ios 使用ZBar读取条形码和二维码
2014-05-19 11:37 106861.使用ZBar项目。下载地址是: http://zbar ... -
ios 中gzip与unGzip
2014-05-14 15:09 1947工程中添加libz.dylib .h文件如下: # ... -
ios socket AsyncSocket使用
2014-05-10 23:27 10808一.项目添加ASyncSocket 1.下载ASyn ... -
ios7 改变状态栏颜色
2014-01-14 15:30 4325ios7 状态栏默认为白底黑色,怎么改变为黑底白字呢,以下为 ... -
iOS企业账号发布流程
2013-12-31 14:33 28671这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级 ... -
ios GDataXMLNode 操作xml
2013-11-28 15:25 1666创建XML: //创建XML GData ... -
ios NSdata 与 NSString,Byte数组相互转换
2013-11-28 14:42 92691. NSData 与 NSString NSData- ... -
Android、iPhone和Java三个平台一致的加密方法
2013-11-25 22:52 3877先前一直在做安卓,最近要开发iPhone客户端,这其中遇到的 ... -
iOS开发图像处理--绘制图片上下颠倒
2013-11-16 22:07 2078使用CGContextDrawImage绘制图片上下颠倒 ... -
iphone 静态库读取资源文件
2013-08-07 17:43 7871在制作iphone静态库中并不能包含资源文件,虽然我们将资 ... -
IOS UIWebView截获html并修改便签内容,宽度自适应
2013-04-24 20:14 25572需求:混合应用UIWebView打开html后,UIWebV ...
相关推荐
总的来说,实现"iOS 仿京东淘宝商品详情tableView上滑和headerView之间的滑动效果"需要对UITableView的滚动机制有深入理解,同时熟练掌握手势识别、视图动画以及UI组件的自定义。通过以上步骤,开发者可以创建出具有...
在iOS开发中,创建一个仿苹果地图搜索滑动视图是一项常见的需求,它涉及到用户界面设计、滚动视图(UIScrollView)的使用以及自定义视图(UIView)的绘制。这个"ios-仿苹果地图搜索滑动视图.zip"文件很可能包含了一...
在iOS应用开发中,"IOS商品列表"是一个常见的功能需求,尤其在电商或者购物类应用中,用户需要能够浏览各种商品并进行筛选。这个功能的核心是实现一个高效的、易用的商品展示界面,通常以列表的形式呈现。在这个场景...
通过继承或嵌套UIScrollView,XMTopScrollView能够实现水平滑动的分段效果。每个分段通常是一个UIView的子类,包含了相应的标题和内容。当用户滑动时,控件会自动高亮当前选中的分段,提供清晰的视觉反馈。 ...
在iOS开发中,实现这样的功能可能需要利用UITableView或UICollectionView结合UIScrollView的Delegate和DataSource协议。开发者需要处理好cell的重用机制,以提高性能。同时,为了实现左右滑动,可能需要自定义cell...
本资源“ios-多种按钮样式.zip”提供了两种独特样式的按钮视图,分别是“带图标筛选按钮视图”和“多按钮选择滚动视图”。这些视图的实现基于开源项目SYButtonView,作者是potato512,可以在GitHub上找到...
在iOS开发中,自定义字母列表是一个常见的需求,特别是在实现类似通讯录的界面时,用户可以通过点击或滑动字母来快速定位到特定的部分。本文将详细介绍如何基于ScrollView创建一个简单的字母筛选视图,并探讨相关的...
在iOS开发中,`SHScrollView`可能是一个自定义的滚动视图控件,它扩展了标准的`UIScrollView`,以实现特定的分段选择功能。`UIScrollView`是苹果提供的一个核心视图,用于展示可滚动内容,如图片、文本或者其他的...
4. **手势识别**:为了实现日历的滑动切换,项目可能使用了`UIScrollView`的手势识别功能,如`UIPanGestureRecognizer`,以便响应用户的滑动操作。 5. **数据存储与同步**:如果日历需要显示特定的事件或标记,那么...
在iOS应用开发中,我们经常需要创建一个类似网易新闻的标签选择器,它允许用户通过点击不同的标签来筛选内容。这种功能在新闻、电商或社交应用中非常常见。本文将详细介绍如何使用Swift来实现这一功能,并结合懒加载...
在iOS中,ScrollView是UIScrollView类,而在Android中,它是ScrollView或HorizontalScrollView(适用于横向滚动)类。 1. **布局设计** 在设计界面时,我们需要将ScrollView作为最外层容器,然后在其内部添加一个...
滑动滚动效果应该平滑流畅,可以利用iOS的`UIScrollView`或Android的`HorizontalScrollView`实现。点击日期单元格应能展开详情,这需要监听触摸事件,并处理相应的动画和视图切换。此外,为了提高用户体验,可以考虑...
另外,为了提供良好的用户体验,滑动浏览图片时,可以使用UICollectionView的无限滚动功能,配合UIScrollView的contentOffset属性和reloadData方法,实现平滑的滚动效果。 对于性能优化,Swift提供了GCD(Grand ...