ios28--UIScrollView

简介:
复制代码
//
//  ViewController.m
//  UIScrollVIew

#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;//已经设置大小是300*200
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView1;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView2;

@end

@implementation ViewController

- (void)viewDidLoad {//控制器类加载完毕后
    [super viewDidLoad];
    
    //1、
    UIView *redView = [[UIView alloc]init];
    redView.backgroundColor = [UIColor redColor];
    redView.frame = CGRectMake(0, 0, 50, 50);
    [self.scrollView addSubview:redView];
    self.scrollView.clipsToBounds = YES;
    //设置内容尺寸,水平不能滚动,垂直滚动10,
    self.scrollView.contentSize = CGSizeMake(300, 210);
    //self.scrollView.scrollEnabled = NO; 不可以滚动
    //是否能够跟用户交互
    self.scrollView.userInteractionEnabled = YES;
    [self.scrollView.subviews.firstObject removeFromSuperview];//移除
    NSLog(@"%@",self.scrollView.subviews);
    /*   另外2个是滚动条,
     (
     "<UIView: 0x7fae0340c7d0; frame = (0 0; 50 50); layer = <CALayer: 0x600000036740>>",
     "<UIImageView: 0x7fae035126b0; frame = (294.667 190; 2.33333 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x608000030f60>> - (null)",
     "<UIImageView: 0x7fae03512090; frame = (290 194.667; 7 2.33333); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x608000030da0>> - (null)"
     )
     */
    
    
    
    //2、加载大图片
    UIImageView* image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"7"]];//大图片
    self.scrollView1.contentSize = CGSizeMake(image.frame.size.width, image.frame.size.height);
    self.scrollView1.bounces = YES;//弹簧效果
    self.scrollView1.alwaysBounceVertical = YES;//没有设置contentSize的时候,不能滚动,但是有时候网络加载的时候,没有数据,需要下拉刷新来加载数据,就用这个,
    self.scrollView1.alwaysBounceHorizontal = YES;
    self.scrollView1.showsVerticalScrollIndicator = YES;//是否显示滚动条
    [self.scrollView1 addSubview:image];
    self.scrollView1.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);//内边距
    //self.scrollView1.contentOffset = CGPointMake(700, 700);//设置偏移
    NSLog(@"%f",self.scrollView1.contentOffset.x);//获取滚动的偏移量
    
    
    
    
    
    
    //3、下拉刷新,显示菊花。
    UIActivityIndicatorView *iv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    iv.center = CGPointMake(100, -30);
    [iv startAnimating];
    self.scrollView2.backgroundColor = [UIColor yellowColor];
    self.scrollView2.alwaysBounceVertical = YES;//没有设置contentSize不能滚动,为了下载加载并显示菊花。(不能滚动,只是有弹簧效果)
    self.scrollView2.alwaysBounceHorizontal = NO;
    [self.scrollView2 addSubview:iv];
    
    
    
    
    
    //代理
    UIScrollView *s = [[UIScrollView alloc]init];
    s.backgroundColor = [UIColor redColor];
    s.frame = CGRectMake(0, 20, 100, 100);
    [self.view addSubview:s];
    UIImage * i = [UIImage imageNamed:@"car"];
    UIImageView* imagev = [[UIImageView alloc]initWithImage:i];
    [s addSubview:imagev];
    s.contentSize = i.size;
    s.delegate = self;//代理,@property(nullable,nonatomic,weak) id<UIScrollViewDelegate>        delegate; 任何类型但是必须遵守UIScrollViewDelegate协议,在控制器加上遵守协议,@interface ViewController ()<UIScrollViewDelegate>,协议不写在.h文件中,因为.h文件暴露在外面给别人看的。
    
    
}

//点击控制器view的空白处调用
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //self.scrollView1.contentOffset.y = 0;//不能直接修改oc对象的结构体变量的成员属性
    
    //点击回到顶部,并且添加动画
    [UIView animateWithDuration:2.0 animations:^{
        CGPoint cp = self.scrollView1.contentOffset;
        cp.y = 0;
        self.scrollView1.contentOffset = cp;
    }];
    
    //点击回到左边
    [self.scrollView1 setContentOffset:CGPointMake(0, self.scrollView1.contentOffset.y) animated:YES];
    NSLog(@"dddd");
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView //区域正在滚动时候调用
{
    
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView //开始滚动时候调用
{

}

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset//即将停止拖拽时候调用
{
    
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView//减速完毕调用
{
    
}
@end
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7488158.html,如需转载请自行联系原作者

相关文章
|
编解码 Android开发 iOS开发
IOS使用AutoLayout让UIScrollView自动计算ContentSize
IOS使用AutoLayout让UIScrollView自动计算ContentSize
144 0
|
Android开发 iOS开发
IOS开发之UIScrollView约束布局
IOS开发之UIScrollView约束布局
354 0
|
Android开发 iOS开发
IOS的UIScrollview简单使用
IOS的UIScrollview简单使用
62 0
|
iOS开发
iOS 利用UIScrollView实现图片放大预览,并支持缩小
iOS 利用UIScrollView实现图片放大预览,并支持缩小
461 0
iOS 利用UIScrollView实现图片放大预览,并支持缩小
|
iOS开发
iOS开发UIScrollView使用详解
iOS开发UIScrollView使用详解
257 0
|
iOS开发
iOS开发实战 - 完美解决UIScrollView嵌套滑动手势冲突
我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样: example.PNG 这个功能想必大家都挺熟悉,受这个启发我们产品也想在我们APP上添加这样一个功能,与这个不一样的是,当我们复制一段网址的时候打开我们的APP会弹出框填一些信息后上传到我们的“资源库”。
4214 0
|
iOS开发
iOS开发之UIScrollView无限滚动
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。
922 0