1.3 UI基础-scrollview

2016-08-18  本文已影响0人  大黄恋上猫

加载Xib文件

NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"Test" owner:nil options:nil];
[self.view addSubview:objs[1]];
objc
XMGShopView *shopView = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
```

// 一个UINib对象就代表一个xib文件
//UINib *nib = [UINib nibWithNibName:@"Test" bundle:[NSBundle mainBundle]];
//一般情况下,bundle参数传nil,默认就是mainBundle
UINib *nib = [UINib nibWithNibName:@"Test" bundle:nil];
NSArray *objs = [nib instantiateWithOwner:nil options:nil];
[self.view addSubview:[objs lastObject]];
```

UIScrollView

0529-1.png 0529-2.png

1.属性

(1) contentSize

self.scrollView.contentSize = CGSizeMake(400, 250);

(2) contentOffset

- (IBAction)leftClick:(id)sender {
    [UIView animateWithDuration:0.5 animations:^{
        //// self.scrollView.contentOffset : 偏移量
        self.scrollView.contentOffset = CGPointMake(0, self.scrollView.contentOffset.y);
    }];
}

- (IBAction)topClick:(id)sender {
    [UIView animateWithDuration:0.5 animations:^{
        self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x, 0);
    }];
}

- (IBAction)buttonClick:(id)sender {
    [UIView animateWithDuration:0.5 animations:^{
        self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentSize.height - self.scrollView.frame.size.height);
    }];
}

- (IBAction)rightClick:(id)sender {
    [UIView animateWithDuration:0.5 animations:^{
       self.scrollView.contentOffset = CGPointMake(self.scrollView.contentSize.width - self.scrollView.frame.size.width, self.scrollView.contentOffset.y);
    }];
}

(3) contentInset

// 设置contentInset
self.scrollView.contentOffset = CGPointMake(0, -64);
self.scrollView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);

(4) UIScrollView 的其他属性

self.scrollView.showsHorizontalScrollIndicator = NO;
self.scrollView.showsVerticalScrollIndicator = NO;

2.代理UIScrollViewDelegate

设置缩放比例

self.scrollview.maximumZoomScale = 2.0;
self.scrollview.minimumZoomScale = 0.2;

分页

#pragma mark - pageScrollView
- (void)setupPageScrollView
{
    self.pageScrollView.delegate = self;

    NSInteger count = 5;
    CGFloat imageW = self.pageScrollView.frame.size.width;
    CGFloat imageH = self.pageScrollView.frame.size.height;

    for (int i = 0; i < count; i++) {
        NSString *imageNamed = [NSString stringWithFormat:@"img_%02d",i];

        UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:imageNamed]];
        // 计算图片位置
        CGFloat imageX = i * imageW;

        image.frame = CGRectMake(imageX, 0, imageW, imageH);

        [self.pageScrollView addSubview:image];
    }
    // 设置contentSize
    self.pageScrollView.contentSize = CGSizeMake(imageW * count, 0);
    // 开启分页功能
    self.pageScrollView.pagingEnabled = YES;
    // 总页数
    self.pageControl.numberOfPages = count;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"滚动中");

    // 分页scrollView
    if(scrollView == self.pageScrollView){
        // 0.3 > (int)(0.3 + 0.5) > 0
        // 0.6 > (int)(0.6 + 0.5) > 1
        // 小数四舍五入为整数 : (int)(小数 + 0.5)
        int page = (int)(self.pageScrollView.contentOffset.x / self.pageScrollView.frame.size.width + 0.5);
        self.pageControl.currentPage = page;
    }
}

上一篇 下一篇

猜你喜欢

热点阅读