我已经创建了一个基本的图像滑块,它通过添加子视图工作正常。但是我应该在故事板中制作它。我正在运行几乎相同的代码,但它没有运行。
我只想制作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_];
}
答案 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_;
}