//SingleViewController
#import <UIKit/UIKit.h>
#import "MyImageView.h"
@interface SingleViewController : UIViewController
<UIScrollViewDelegate,MyImageViewDelegate>
{
int tag;
UIScrollView *scrollView;
UIScrollView *myScrollView;
// UIImageView *imageView;
}
-(id)initWithTag:(int)a;
//
// SingleViewController.m
// ArtEnvi
//
// Created by qianfeng on 13-1-22.
// Copyright (c) 2013年 __MyCompanyName__. All rights reserved.
//
#import "SingleViewController.h"
#import "Helper.h"
@implementation SingleViewController
-(id)initWithTag:(int)a
{
if (self = [super init]) {
tag = a;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
scrollView = [[UIScrollView alloc] init];
scrollView.frame = CGRectMake(0, 0, 320, 460);
scrollView.contentSize = CGSizeMake(320*12, 460);
scrollView.pagingEnabled = YES;
UIImage *image;
MyImageView *imageView;
for (int i=0; i<12; i++) {
myScrollView = [[UIScrollView alloc] init];
myScrollView.frame = CGRectMake(i*320,0,320,460);
myScrollView.delegate = self;
// myScrollView.userInteractionEnabled = YES;
[myScrollView setMinimumZoomScale:0.5];
[myScrollView setMaximumZoomScale:2.5];
image = [UIImage imageNamed:[NSStringstringWithFormat:@"%d.jpg",i+1]];
imageView = [[MyImageView alloc]initWithImage:image];
imageView.frame = CGRectMake(0,0,320,460);
imageView.userInteractionEnabled = YES;
//single 被委托者
imageView.delegate = self;
[myScrollView addSubview:imageView];
[imageView release];
[scrollView addSubview:myScrollView];
[myScrollView release];
}
[scrollView scrollRectToVisible:CGRectMake((tag-1)*320,0, 320, 460) animated:YES];
[self.view addSubview:scrollView];
[scrollView release];
}
- (void)imageClicked
{
NSLog(@"SingleViewController.....");
[self.navigationControllersetNavigationBarHidden:!self.navigationController.navigationBarHidden animated:YES];
// [self.tabBarController settab];
[Helper hiddenTabBar:self.tabBarController animated:YESisHidden:self.navigationController.navigationBarHidden];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView*)scrollView1
{
return [scrollView1.subviews objectAtIndex:0];
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView1 withView:(UIView *)view atScale:(float)scale
{
if (scrollView1 == myScrollView) {
if (scale < 1.0) {
[myScrollView setZoomScale:1.0];
}
}
}
//此时相应touchesBegan的时UIScrollView
//- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
//{
//
// NSLog(@"aaa");
// UITouch *touch = [[event allTouches] anyObject];
//
// if ([touch view] == myScrollView){
// NSLog(@"..........");
// }
//}
@end
// MyImageView.h
#import <UIKit/UIKit.h>
@protocol MyImageViewDelegate
- (void)imageClicked;
@end
@interface MyImageView : UIImageView
{
UIImage *_image;
id <MyImageViewDelegate> *_delegate;
}
- (id)initWithImage:(UIImage *)image;
@property (nonatomic,retain)id<MyImageViewDelegate>delegate;
@end
// MyImageView.m
#import "MyImageView.h"
@implementation MyImageView
@synthesize delegate;
- (id)initWithImage:(UIImage *)image
{
if (self = [super init]) {
_image = image;
self.image = image;
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event
{
[delegate imageClicked];
}
@end
// Helper.h
#import <Foundation/Foundation.h>
@interface Helper : NSObject
+(void)hiddenTabBar:(UITabBarController *)tabbarcontroller animated:(BOOL)animated isHidden:(BOOL)isHidden;
@end
// Helper.m
#import "Helper.h"
@implementation Helper
+(void)hidden:(UITabBarController *)tabbarcontroller isHidden:(BOOL)hidden
{
CGRect frame=[UIScreen mainScreen].bounds;
if (hidden) {
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[viewsetFrame:CGRectMake(view.frame.origin.x, frame.size.height, view.frame.size.width, view.frame.size.height)];
}
else
{
[viewsetFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, frame.size.height)];
}
}
}
else {
for(UIView *view in tabbarcontroller.view.subviews)
{
NSLog(@"%@", view);
if([view isKindOfClass:[UITabBar class]])
{
[viewsetFrame:CGRectMake(view.frame.origin.x, frame.size.height-49, view.frame.size.width, view.frame.size.height)];
}
else
{
[viewsetFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, frame.size.height)];
}
}
}
}
+(void)hiddenTabBar:(UITabBarController *)tabbarcontroller animated:(BOOL)animated isHidden:(BOOL)isHidden
{
if (animated) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
[self hidden:tabbarcontroller isHidden:isHidden];
[UIView commitAnimations];
}
else{
[self hidden:tabbarcontroller isHidden:isHidden];
}
}
@end