UI-滚动视图(滚动视图)
来源:互联网 发布:单片机电路设计 编辑:程序博客网 时间:2024/05/21 15:04
UIScrollView (滚动视图) (产品使用介绍就是用滚动视图实现的)
滚动视图实现原理:滚动视图位置不变 内容的位置发生改变
效果:1. 分页查看图片
2.查看大图片
3.当内容过多 需要一个页面显示(如注册 修改个人信息)
4.当不希望用户感觉我们的界面不是一张图片的时候 contentSize : height +1 or
width +1
--------------------------1. 分页查看图片-------------------------------------------------------------------------
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
#pragma -------------分页查看图片
NSArray *imageName = @[@"t-1.jpg",@"t-2.jpg",@"t-3.jpg"];
UIScrollView *myscrollview = [[UIScrollView alloc]initWithFrame:self.view.frame];
myscrollview.delegate = self;
myscrollview.contentSize = CGSizeMake(CGRectGetWidth(self.view.frame)*imageName.count, 0);
// 设置滚动视图的分页效果
myscrollview.pagingEnabled = YES;
// 设置滚动条的样式
myscrollview.indicatorStyle = UIScrollViewIndicatorStyleWhite;
// 设置滚动视图的偏移量 可以达到 设置滚动视图默认在第几屏的位置 还可以通过contentoffest来判断滚动到第几屏
myscrollview.contentOffset = CGPointMake(CGRectGetWidth(self.view.frame), 0);
// 设置是否有反弹效果
myscrollview.bounces = NO;// 如果默认值是可以看到底图 并有反弹效果
myscrollview.showsHorizontalScrollIndicator = NO;
for (int i = 0; i <imageName.count; i++) {
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(CGRectGetWidth(self.view.frame)*i, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))];
imageView.image = [UIImage imageNamed:imageName[i]];
imageView.alpha = 0.5;
[myscrollview addSubview:imageView];
}//把图片添加到滚动视图上
#pragma----UIPageControl(点点点)
UIPageControl *pagecontrol = [[UIPageControl alloc]initWithFrame:CGRectMake( 0, CGRectGetHeight(self.view.frame)-40, CGRectGetWidth(self.view.frame), 20)];
// 设置pagecontrol总共有多少页
pagecontrol.numberOfPages = imageName.count;
// 设置指示的当前页面
pagecontrol.currentPage = 1;
// 当只有一个页面的时候隐藏pagecontrol
pagecontrol.hidesForSinglePage = YES;
// 设置空心小圆点的颜色
pagecontrol.pageIndicatorTintColor = [UIColor orangeColor];
pagecontrol.tag = 119;
[self.view addSubview:pagecontrol];
[self.view addSubview:myscrollview];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
// NSLog(@"%f",scrollView.contentOffset.x);
// 在哪一个页面通过偏移x的位置初一屏幕的宽度得到当前的页数
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{//得到一个当前页数
// x滚动视图的偏移量 (特有的数据)屏幕的宽(持有的数据)
float x = scrollView.contentOffset.x;
float w = CGRectGetWidth(self.view.frame);
NSLog(@"%f",x);
// 偏移量除以宽 得到当前页面的页数
NSInteger curpage = x/w;
// 通过tag值找到pagecontrol
UIPageControl *pagecontrol = (UIPageControl *)[self.view viewWithTag:119];
pagecontrol.currentPage = curpage;
}
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
{
UIImageView *imageview;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
#pragma -----------查看大图片
// 一、 查看大图片
NSString *path = [[NSBundle mainBundle]pathForResource:@"fj-i" ofType:@"jpg"];
UIImage *bg = [UIImage imageWithContentsOfFile:path];
UIScrollView * scrolview = [[UIScrollView alloc]initWithFrame:self.view.frame];
scrolview.backgroundColor = [UIColor greenColor];
// 设置滚动视图的contentsize 如果滚动视图的contentsize 如果contentsize 小于滚动视图的bounds 就不会滚动
scrolview.contentSize = CGSizeMake(0, CGRectGetHeight(self.view.frame)+100);
scrolview.contentSize = bg.size;// 设置滚动视图的contentsize跟滚动视图一样大
// 在滚动视图上 添加图片(在滚动视图上 添加内容)
imageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, bg.size.width, bg.size.height)];
imageview.image = bg;
[scrolview addSubview:imageview];
//二、放大图片 :1.需要用到滚动视图的代理方法 2.设置放大缩小图片的最大最小倍数 3. 让滚动视图知道要放大那个视图
scrolview.minimumZoomScale = 0.5;// 设置滚动视图的缩放最小倍数
scrolview.maximumZoomScale = 5; // 设置滚动视图的缩放最大倍数
scrolview.delegate = self;
[self.view addSubview:scrolview];
}
#pragma -------------ScrollViewDelegate---
//设置需要在滚动视图上 添加图片视图(在滚动视图上 添加内容)
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView//缩放图片方法
{
return imageview;
}
#pragma ----当内容过多 需要一个页面视图 (如 注册 修改个人信息)
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
{
UITextField *textfield;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
textfield = [[UITextField alloc]initWithFrame:CGRectMake(100, 200, 200, 40)];
textfield.borderStyle = UITextBorderStyleLine;
[mysrollview addSubview:textfield];
UIScrollView * mysrollview = [[UIScrollView alloc]initWithFrame: self.view.frame];
mysrollview.contentSize = CGSizeMake(0 , CGRectGetHeight(self.view.frame)+10);
mysrollview.delegate = self;
mysrollview.scrollsToTop = YES;//设置滚动视图 是否允许点击顶部 滚动到初始位置
// 屏蔽滚动条
mysrollview.showsVerticalScrollIndicator = NO;//纵向
// mysrollview.showsHorizontalScrollIndicator = NO; //水平方向
[self.view addSubview:mysrollview];
}
//开始滚动的时候开始调用
//- (void)scrollViewDidScroll:(UIScrollView *)scrollView
//{
// [textfield resignFirstResponder];
//}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
// [textfield resignFirstResponder];
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
[textfield resignFirstResponder];
}
由于4比较简单就不介绍了- UI-滚动视图(滚动视图)
- UI滚动视图
- UI:UIScrollView滚动视图
- UI 界面设计 滚动视图
- UI笔记_UIScrollView滚动视图
- 滚动视图
- 滚动视图
- 滚动视图
- 滚动视图
- UI之UIScrollView实现循环滚动视图
- iOS-UI控件-UIScrollView-滚动视图
- 滚动视图滚动至顶部
- 滚动视图和网页视图
- 内置视图-滚动视图
- Android视图之滚动视图
- 4. android 滚动视图
- 滚动视图双缓冲
- 滚动视图二
- URI、URL和URN是什么
- CentOS 7 桌面创建快捷方式
- rn_xtcxyczjh-1 功能 封装 通用 回调
- Android4 .1添加新的按键(1)
- Mysql 查看具体行排名
- UI-滚动视图(滚动视图)
- Yoshua Bengio等大神传授:26条深度学习经验
- Android4.1添加新的按键(2)
- LoadRunner性能图表分析
- mantis 实验报告
- poj3694 连通图+LCA
- 一道2015年百度笔试编程题-四则运算计算器
- 容易被忽视的Linux磁盘配额设置
- PLSQL Developer 运行SQL脚本时插入数据库中数据乱码问题