在故事板问题上制作图像滑块

时间:2014-12-19 13:45:42

标签: ios uiscrollview uiimageview uipagecontrol

我已经创建了一个基本的图像滑块,它通过添加子视图工作正常。但是我应该在故事板中制作它。我正在运行几乎相同的代码,但它没有运行。

我只想制作3张图片滑块。

所以请任何人告诉我的问题在哪里?

- (void)run{

pageNumber =3;

_scrollview = [[UIScrollView alloc] init];
_scrollview.backgroundColor = [UIColor whiteColor];
_scrollview.pagingEnabled = true;
_scrollview.bounces = false;
_scrollview.delegate = self;
_scrollview.showsHorizontalScrollIndicator = false;
_scrollview.layer.cornerRadius = 2;

_pgcontrol = [[UIPageControl alloc] init];
_pgcontrol.pageIndicatorTintColor = [UIColor colorWithWhite:0.8 alpha:1];
_pgcontrol.currentPageIndicatorTintColor = [UIColor colorWithWhite:0.6 alpha:1];
_pgcontrol.numberOfPages = pageNumber;
_pgcontrol.currentPage = 0;
[_pgcontrol sizeToFit];

UIImageView*im_ = [[UIImageView alloc] init];
im_.contentMode = UIViewContentModeScaleAspectFit;
im_.clipsToBounds = true;
im_.image = [UIImage imageNamed:@"31900.png"];

UIImageView*im1_ = [[UIImageView alloc] init];
im1_.contentMode = UIViewContentModeScaleAspectFit;
im1_.clipsToBounds = true;
im1_.image = [UIImage imageNamed:@"31901.png"];

UIImageView*im2_ = [[UIImageView alloc] init];
im2_.contentMode = UIViewContentModeScaleAspectFit;
im2_.clipsToBounds = true;
im2_.image = [UIImage imageNamed:@"31902.png"];

[_scrollview addSubview:im_];
[_scrollview addSubview:im1_];
[_scrollview addSubview:im2_];
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

int page_ = (int)round(scrollView.contentOffset.x / scrollView.frame.size.width);

if (page_== pageNumber-3) {
    NSLog(@"page3");
}

else if (page_ == pageNumber-2){
    NSLog(@"page2");
}

else if (page_ == pageNumber-1){
    NSLog(@"page3");
}
_pgcontrol.currentPage = page_;
}

///// 旧代码 /////

- (void)imageCreater{

self.view.backgroundColor = [UIColor whiteColor];
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

CGRect svrect_ = CGRectZero;
svrect_.size.height = self.view.bounds.size.height/3.1*2;
svrect_.size.width = self.view.bounds.size.width/3*2;

CGPoint svcenter_ = CGPointZero;
svcenter_.x = self.view.center.x;
svcenter_.y = self.view.center.y+65;

CGSize svconsize = CGSizeZero;
svconsize.height = svrect_.size.height;
svconsize.width = svrect_.size.width * 3;

CGPoint pgconcenter_ = CGPointZero;
pgconcenter_.x = self.view.center.x;
pgconcenter_.y = svcenter_.y + (svrect_.size.height/2) + 40;

CGRect btnrect_ = CGRectZero;
btnrect_.size.width = 250;
btnrect_.size.height = 50;

CGPoint btncenter_ = CGPointZero;
btncenter_.x = self.view.center.x;
btncenter_.y = self.view.bounds.size.height-65;

_backgroundimageview = [[UIImageView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_backgroundimageview];

_scrollview = [[UIScrollView alloc] initWithFrame:svrect_];
_scrollview.center = svcenter_;
_scrollview.backgroundColor = [UIColor whiteColor];
_scrollview.contentSize = svconsize;
_scrollview.pagingEnabled = true;
_scrollview.bounces = false;
_scrollview.delegate = self;
_scrollview.showsHorizontalScrollIndicator = false;
_scrollview.layer.cornerRadius = 2;
[self.view addSubview:_scrollview];

_pgcontrol = [[UIPageControl alloc] initWithFrame:CGRectZero];
_pgcontrol.pageIndicatorTintColor = [UIColor colorWithWhite:0.8 alpha:1];
_pgcontrol.currentPageIndicatorTintColor = [UIColor colorWithWhite:0.6 alpha:1];
_pgcontrol.numberOfPages = 3;
_pgcontrol.currentPage = 0;
[_pgcontrol sizeToFit];
_pgcontrol.center = pgconcenter_;
[self.view addSubview:_pgcontrol];

UIImageView*iv_ = [[UIImageView alloc] initWithFrame:svrect_];
iv_.contentMode = UIViewContentModeScaleAspectFit;
iv_.clipsToBounds = true;
iv_.image = [UIImage imageNamed:@"31900.png"];

svrect_.origin.x += iv_.frame.size.width;

UIImageView*iv1_ = [[UIImageView alloc] initWithFrame:svrect_];
iv1_.contentMode = UIViewContentModeScaleAspectFit;
iv1_.clipsToBounds = true;
iv1_.image = [UIImage imageNamed:@"31901.png"];

svrect_.origin.x += iv1_.frame.size.width;

UIImageView*iv2_ = [[UIImageView alloc] initWithFrame:svrect_];
iv2_.contentMode = UIViewContentModeScaleAspectFit;
iv2_.clipsToBounds = true;
iv2_.image = [UIImage imageNamed:@"31902.png"];

[_scrollview addSubview:iv_];
[_scrollview addSubview:iv1_];
[_scrollview addSubview:iv2_];
}

1 个答案:

答案 0 :(得分:1)

试试这个:

- (void)run
{
    // If you are using story board and user interface then you don't need to initialize scroll view.
    _scrollview.backgroundColor = [UIColor whiteColor];
    _scrollview.pagingEnabled = true;
    _scrollview.bounces = false;
    _scrollview.delegate = self;
    _scrollview.showsHorizontalScrollIndicator = false;
    _scrollview.layer.cornerRadius = 2;
    _scrollview.contentSize = CGSizeMake(320*3, _scrollview.frame.size.height);

    // Same for Page control you dont need to initialize it
    _pgcontrol.pageIndicatorTintColor = [UIColor colorWithWhite:0.8 alpha:1];
    _pgcontrol.currentPageIndicatorTintColor = [UIColor colorWithWhite:0.6 alpha:1];
    _pgcontrol.numberOfPages = pageNumber;
    _pgcontrol.currentPage = 0;

    UIImageView *im_ = [[UIImageView alloc] initWithFrame:CGRectMake((_scrollview.frame.size.width*0),0,_scrollview.frame.size.width,_scrollview.frame.size.height)];
    im_.contentMode = UIViewContentModeScaleAspectFit;
    im_.clipsToBounds = true;
    im_.image = [UIImage imageNamed:@"31900.png"];

    UIImageView*im1_ = [[UIImageView alloc] initWithFrame:CGRectMake((_scrollview.frame.size.width*1),0,_scrollview.frame.size.width,_scrollview.frame.size.height)];
    im1_.contentMode = UIViewContentModeScaleAspectFit;
    im1_.clipsToBounds = true;
    im1_.image = [UIImage imageNamed:@"31901.png"];

    UIImageView*im2_ = [[UIImageView alloc] initWithFrame:CGRectMake((_scrollview.frame.size.width*2),0,_scrollview.frame.size.width,_scrollview.frame.size.height)];
    im2_.contentMode = UIViewContentModeScaleAspectFit;
    im2_.clipsToBounds = true;
    im2_.image = [UIImage imageNamed:@"31902.png"];

    [_scrollview addSubview:im_];
    [_scrollview addSubview:im1_];
    [_scrollview addSubview:im2_];
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    int page_ = (int)round(scrollView.contentOffset.x / scrollView.frame.size.width);

    if (page_== pageNumber-3) 
    {
        NSLog(@"page3");
    }

    else if (page_ == pageNumber-2)
    {
        NSLog(@"page2");
    }

    else if (page_ == pageNumber-1)
    {
        NSLog(@"page3");
    }
    _pgcontrol.currentPage = page_;
}