iOS UI入门——使用Objective-C和Swift简单实现UIScrollView

Objective-C代码:

@interface ViewController ()<UIScrollViewDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    [self setupScrollView];
}

-(void)setupScrollView{
    //初始化
    UIScrollView * scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
    //设置背景色
    scrollView.backgroundColor = [UIColor redColor];
    //设置可滑动的大小
    scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height*2);
    //设置分页属性,default NO. if YES, stop on multiples of view bounds
    scrollView.pagingEnabled = YES;
    //设置滑动弹性default YES. if YES, bounces past edge of content and back again
    scrollView.bounces = YES;
    //设置竖向拉动条
    scrollView.showsVerticalScrollIndicator = YES;
    //设置横向拉动条
    scrollView.showsHorizontalScrollIndicator = YES;
    //设置代理
    scrollView.delegate = self;
    //添加scrollView
    [self.view addSubview:scrollView];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    // any offset changes
    //ScrollView滚动状态时调用
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2){
    // any zoom scale changes
    //ScrollView放大缩小时调用
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    // called on start of dragging (may require some time and or distance to move)
    //开始拖拽时调用
}

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0){
    // called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest
    //滑动结束时调用
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    // called on finger up if the user dragged. decelerate is true if it will continue moving afterwards
    //结束拖拽时调用
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    // called on finger up as we are moving
    //开始减速时调用
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    // called when scroll view grinds to a halt
    //结束减速时调用
}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
    // called when setContentOffset/scrollRectVisible:animated: finishes. not called if not animating
}

- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    // return a view that will be scaled. if delegate returns nil, nothing happens
    return nil;
}

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view NS_AVAILABLE_IOS(3_2){
    // called before the scroll view begins zooming its content
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale{
    // scale between minimum and maximum. called after any 'bounce' animations
    //缩放完成之后恢复原大小
}

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
    // return a yes if you want to scroll to the top. if not defined, assumes YES
    return YES;
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
    // called when scrolling animation finished. may be called immediately if already at top
}

- (void)scrollViewDidChangeAdjustedContentInset:(UIScrollView *)scrollView API_AVAILABLE(ios(11.0), tvos(11.0)){
    //Also see -[UIScrollView adjustedContentInsetDidChange]
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Swift代码

import UIKit

class ViewController: UIViewController,UIScrollViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.setupScrollView()
    }

    func setupScrollView() {
        //初始化
        let scrollView = UIScrollView.init(frame: self.view.frame)
        //设置背景色
        scrollView.backgroundColor = UIColor.red
        //设置可滑动的大小
        scrollView.contentSize = CGSize.init(width: self.view.frame.size.width, height: self.view.frame.size.height*2)
        //设置分页属性,default NO. if YES, stop on multiples of view bounds
        scrollView.isPagingEnabled = true
        //设置滑动弹性default YES. if YES, bounces past edge of content and back again
        scrollView.bounces = true
        //设置竖向拉动条
        scrollView.showsHorizontalScrollIndicator = true
        //设置横向拉动条
        scrollView.showsVerticalScrollIndicator = true
        //设置代理
        scrollView.delegate = self
        //添加scrollView
        self.view.addSubview(scrollView)
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        // any offset changes
        //ScrollView滚动状态时调用
    }

    func scrollViewDidZoom(_ scrollView: UIScrollView) {
        // any zoom scale changes
        //ScrollView放大缩小时调用
    }

    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        // called on start of dragging (may require some time and or distance to move)
        //开始拖拽时调用
    }

    func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
        // called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest
        //滑动结束时调用
    }

    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        // called on finger up if the user dragged. decelerate is true if it will continue moving afterwards
        //结束拖拽时调用
    }

    func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
        // called on finger up as we are moving
        //开始减速时调用
    }

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        // called when scroll view grinds to a halt
        //结束减速时调用
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

猜你喜欢

转载自blog.csdn.net/aaaaazq/article/details/80843145