您的位置:首页 > 产品设计 > UI/UE

UIScrollView-----1基本使用

2015-10-13 01:07 627 查看
1.什么是UIScrollView

移动设备的屏幕大小是有限的,当显示的内容较多的时候,无法全部展示完,可以通过手指滑动的方式查看其他的,这个就是UIScrollVieW

2.UIScrollView基本使用

(1)需要将展示的内容添加到UIScrollView中

(2)设置UIScrollView的contentSize属性,告诉UIScrollView的滚动范围

例1 OC语言

新建项目,在storyboard中不勾选autoLayout 和sizeclasses



然后拖入UIScrollView, 在UIScrollView中拖入ImageView,他们大小和控制器视图一样,铺满屏幕,为UIImageView设置图片,我找的素材

是1440*900的,设置UIImageView尺寸为1440*900;





oc代码,打开即可拖动

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.scrollView.contentSize = CGSizeMake(1440, 900);
}

@end


例2 swift纯代码版 实现效果与上述一样

import UIKit

class ViewController: UIViewController {

//滑动视图
var scrollView = UIScrollView()
//UIImageView
var imageView = UIImageView()
//UIImage
var image = UIImage(named: "gu")

override func viewDidLoad() {
super.viewDidLoad()
//UIScrollView相关
scrollView.frame = self.view.frame
scrollView.backgroundColor = UIColor.redColor()
scrollView.contentSize = CGSizeMake(1440, 900)
self.view.addSubview(scrollView)
//UImageView相关
imageView.frame = CGRectMake(0, 0, 1440, 900);
imageView.image  = image;
scrollView.addSubview(imageView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}


注意: 如果UIScrollView无法滚动

(1)检查contenSize设置

(2)是否将属性scrollEnabled = NO

(3)没有接收到触摸事件:userInteractionEnabled = NO

(4)autolayout打开

3.UIScrollView的常见属性和方法

(1)contentofffset CGPoint 类型 UIScrollView滚动起始位置,像frame中x,y

(2)contentSize CGSize类型 滚动范围

(3)contentInset UIEdgeInsets类型 在滚动范围周围在加一层

他们之间的关系是这样的



利用上述属性做一个Demo,在例1的基础上加一个UIButton,点击的时候使得图片可以滚动



oc+storyBoard代码

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.scrollView.contentSize = CGSizeMake(1440, 900);
}

- (IBAction)move:(id)sender {
CGPoint old = self.scrollView.contentOffset;
old.x += 50;
old.y += 50;
//   // 使用UIView动画
//    [UIView animateWithDuration:3.0 animations:^{
//        self.scrollView.contentOffset = old;
//    }];
//或者系统方法
[self.scrollView setContentOffset:old animated:YES];
}
@end


swift纯代码

import UIKit

class ViewController: UIViewController {

//滑动视图
var scrollView = UIScrollView()
//UIImageView
var imageView = UIImageView()
//UIImage
var image = UIImage(named: "gu")
//按钮
var btn = UIButton(frame: CGRectMake(100, 100, 100, 100))

override func viewDidLoad() {
super.viewDidLoad()
//UIScrollView相关
scrollView.frame = self.view.frame
scrollView.backgroundColor = UIColor.redColor()
scrollView.contentSize = CGSizeMake(1440, 900)
self.view.addSubview(scrollView)
//UImageView相关
imageView.frame = CGRectMake(0, 0, 1440, 900);
imageView.image  = image;
scrollView.addSubview(imageView)
//按钮相关
btn.setTitle("移动按钮", forState:UIControlState.Normal)
btn.setTitleColor(UIColor.blueColor(), forState:UIControlState.Normal)
self.view.addSubview(btn)
btn.addTarget(self, action:"move", forControlEvents:UIControlEvents.TouchUpInside)
}

/**
移动画面
*/
func move()->Void{
UIView.animateWithDuration(3.0) { () -> Void in
var old = self.scrollView.contentOffset
old.x += 50
old.y += 50
self.scrollView.contentOffset = old
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: