我尝试创建一个水平页面滑块,就像您在大多数问答游戏中看到的那样。
基本上每个页面都有和图像/按钮在屏幕右侧略微显示,以表明还有更多页面。
在最后一页上,用户应该看不到右侧的图像,而是左侧的图像,因为它是最后一页。
所以在图像之间显示左右。
有没有办法通过检查员或仅以编程方式做到这一点?
我尝试了这两种方法并最终产生了一些奇怪的副作用,它会反弹回图像的中心位置。
见下图:
我尝试创建一个水平页面滑块,就像您在大多数问答游戏中看到的那样。
基本上每个页面都有和图像/按钮在屏幕右侧略微显示,以表明还有更多页面。
在最后一页上,用户应该看不到右侧的图像,而是左侧的图像,因为它是最后一页。
所以在图像之间显示左右。
有没有办法通过检查员或仅以编程方式做到这一点?
我尝试了这两种方法并最终产生了一些奇怪的副作用,它会反弹回图像的中心位置。
见下图:
使用此代码
在 .h 文件中使用
@property (weak, nonatomic) IBOutlet UIScrollView *imageScrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
在 .m 类中
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSArray *viewsToRemove = [self.imageScrollView subviews];
for (UIView *subviewElement in viewsToRemove) {
[subviewElement removeFromSuperview];
}
UIImageView *img1= [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, IS_IPHONE_5?370:284)];
img1.image=[UIImage imageNamed:@"yourImage1"];
[img1.image stretchableImageWithLeftCapWidth:320 topCapHeight:IS_IPHONE_5?370:284 ];
UIImageView *img2= [[UIImageView alloc] initWithFrame:CGRectMake(320, 0, 320, IS_IPHONE_5?370:284)];
img2.image=[UIImage imageNamed:@"yourImage2"];
[img2.image stretchableImageWithLeftCapWidth:320 topCapHeight:IS_IPHONE_5?370:284 ];
UIImageView *img3= [[UIImageView alloc] initWithFrame:CGRectMake(640, 0, 320, IS_IPHONE_5?370:284)];
img3.image=[UIImage imageNamed:@"yourImage3"];
[img3.image stretchableImageWithLeftCapWidth:320 topCapHeight:IS_IPHONE_5?370:284 ];
[self.imageScrollView addSubview:img1];
[self.imageScrollView addSubview:img2];
[self.imageScrollView addSubview:img3];
}
- (void)viewDidLayoutSubviews
{
self.imageScrollView.contentSize= CGSizeMake((imageScrollView.frame.size.width*3) , imageScrollView.frame.size.height);
}