iOS笔记UI--scrollview

本文详细介绍了如何使用Swift语言实现UIScrollView的各个关键功能,包括设置窗口和内容大小、选择起始位置、分页操作、弹簧效果、滚动方向以及创建视图布局。通过实例演示,帮助开发者掌握UIScrollView的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  /* UIScrollView练习思路

   1.先遵循协议  <UIScrollViewDelegate>
   2.创建UIScrollView窗体的大小
   3.创建UIScrollView内容的大小
   4.选择起始位置
   5.分页操作
   6.弹簧效果
   7.滚动方向
   8.创建UIView放内容进去 */
#import "ViewController.h"
@interface ViewController () {
    UIView *view;
}
@end


@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    
    //    2.创建UIScrollView窗体的大小
    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 375, 667)];
    scrollView.backgroundColor = [UIColor redColor];
    [self.view addSubview:scrollView];
    
    scrollView.delegate = self;
    
    //   3.创建UIScrollView内容的大小 8个页面
    scrollView.contentSize = CGSizeMake(375*8, 667);
    
    // 4.选择起始位置
    scrollView.contentOffset = CGPointZero;
    
    //    5.分页操作
    scrollView.pagingEnabled = YES;

    //    6.弹簧效果  不要弹簧效果
    scrollView.bounces = NO;
    
    //    7.滚动方向
    scrollView.showsHorizontalScrollIndicator = YES;

    //    8.创建UIView放内容进去
    for (int i = 0 ; i< 8 ; i++) {
       view = [[UIView alloc]init];
        view.frame = CGRectMake(i*375, 0, 375, 667);
        view.backgroundColor = [UIColor colorWithRed:arc4random()%256/255. green:arc4random()%256/255. blue:arc4random()%256/255. alpha:1];
        
        [scrollView addSubview:view];
        view.tag = i+1;
        // label 注意,添加到scrollView里面。不是UIView
        UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(i*375, 0, 50, 50)];
        if (7 == i ) {
             label.text =@"0";
        } else  {
         label.text = [NSString stringWithFormat:@"%d",i];
        }
        [scrollView addSubview:label];
    }
}

// 实现可左右循环拉动效果
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    CGPoint myPoint = CGPointMake(2625, 667);
    if (  scrollView.contentOffset.x == myPoint.x)  {
        // 如果是最后一张,变为第一张
        scrollView.contentOffset = CGPointMake(0, 667);
    } else if( scrollView.contentOffset.x == 0)  {
        // 如果是第一张,变为最后一张
        scrollView.contentOffset = CGPointMake(2625, 0);
    }
}
@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值