Xcode中的图像链接ImageView转到下一个视图控制器

10 浏览
0 Comments

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

enter image description here

enter image description here

0