Xcode中的图像链接ImageView转到下一个视图控制器
Xcode中的图像链接ImageView转到下一个视图控制器
我已经为一个使用Scrollview显示颜色样本图片的选项卡应用创建了一个Xcode项目。我该如何将滚动视图中的其中一张图片链接到下一个视图控制器?以下是我的代码和图片。所以当你点击滚动视图中的一张图片或样本颜色时,它会链接到新的控制器。
我在iPhone页面上有多个可以滚动的图片,我需要循环这些图片吗?因为有24张图片。我已经能够创建一个按钮并使用界面构建器将其链接到下一个场景,但是屏幕上只能容纳5张图片。
DecorsViewController_iPhone.h
#import@interface DecorsViewController_iPhone : UIViewController { IBOutlet UIScrollView *scrollViewDecors; } @property (nonatomic, retain) UIView *scrollViewDecors; @end
DecorsViewController_iPhone.m
#import "DecorsViewController_iPhone.h" @interface DecorsViewController_iPhone () @end @implementation DecorsViewController_iPhone @synthesize scrollViewDecors; const CGFloat kScrollObjHeight = 81.5; const CGFloat kScrollObjWidth = 320.0; const NSUInteger kNumImages = 24; - (void)layoutScrollImages { UIImageView *view = nil; NSArray *subviews = [scrollViewDecors subviews]; // 水平方式重新定位所有图片子视图 CGFloat curXLoc = 0; CGFloat curYLoc = 0; CGFloat curYSpace = 1; for (view in subviews) { if ([view isKindOfClass:[UIImageView class]] && view.tag > 0) { CGRect frame = view.frame; frame.origin = CGPointMake(curXLoc, curYLoc); view.frame = frame; curYLoc += (curYSpace + kScrollObjHeight); } } // 设置内容大小以实现滚动 [scrollViewDecors setContentSize:CGSizeMake(([scrollViewDecors bounds].size.width), (kNumImages * kScrollObjHeight))]; // 垂直选项 } - (void)viewDidLoad { self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor]; // 1. 设置滚动视图以显示多个图片并添加到视图控制器中 // // 注意:以下内容可以在界面构建器中完成,但出于清晰起见,我们在代码中展示这个过程 [scrollViewDecors setBackgroundColor:[UIColor blackColor]]; [scrollViewDecors setCanCancelContentTouches:NO]; scrollViewDecors.indicatorStyle = UIScrollViewIndicatorStyleWhite; scrollViewDecors.clipsToBounds = YES; // 默认为NO,我们希望限制在滚动视图内进行绘制 scrollViewDecors.scrollEnabled = YES; // pagingEnabled属性默认为NO,如果设置了,滚动视图将在每个照片处停止或对齐 // 如果您希望自由滚动,请不要设置此属性。 // scrollView1.pagingEnabled = YES; // 从捆绑包中加载所有图片并将它们添加到滚动视图中 NSUInteger i; for (i = 1; i <= kNumImages; i++) { NSString *imageName = [NSString stringWithFormat:@"Artwork_iPhone_Decors_Scrollview_%d.png", i]; UIImage *image = [UIImage imageNamed:imageName]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; // 设置每个框架的默认高度和宽度,当我们调用“updateScrollList”时,它将被正确放置 CGRect rect = imageView.frame; rect.size.height = kScrollObjHeight; rect.size.width = kScrollObjWidth; imageView.frame = rect; imageView.tag = i; // 为以后在串行方式放置时使用的图像设置标签 [scrollViewDecors addSubview:imageView]; //[imageView release]; } [self layoutScrollImages]; // 现在将照片以串行布局放置在滚动视图中 } //- (void)dealloc //{ // [scrollViewDecors release]; // // [super dealloc]; //} //- (void)viewDidLoad //{ // [super viewDidLoad]; // // Do any additional setup after loading the view, typically from a nib. //} - (void)viewDidUnload { [super viewDidUnload]; // 释放主视图的所有子视图 } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } else { return YES; } } @end