开发者

how to rotate view with navigation controll?

@implementation MainViewController

@synthesize scrollView,imageView;

    - (id) init { 


    if (self != nil) {
        self.title = @"Evolution";
    }
    return self;}
    - (void)viewDidLoad {
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
    tapGesture.numberOfTapsRequired = 1;
    tapGesture.numberOfTouchesRequired = 1;


    scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];

    int numberOfImages = 32;
    CGFloat currentX = 0.0f;

    for (int i=1; i <= numberOfImages; i++) {

        // create image
        NSString *imageName = [NSString stringWithFormat:@"page-%d.jpg", i];
        UIImage *image = [UIImage imageNamed:imageName];
        imageView = [[UIImageView alloc] initWithImage:image];

        // put image on correct position
        CGRect rect = imageView.frame;
        rect.origin.x = currentX;
        imageView.frame = rect;

        // update currentX
        currentX +=454; //mageView.frame.size.width;

        [scrollView addSubview:imageView];
        [imageView release];
    }
    [scrollView addGestureRecognizer:tapGesture];

    scrollView.contentSize = CGSizeMake(currentX, 800);
    scrollView.pagingEnabled=YES;
    scrollView.userInteractionEnabled = YES;
    scrollView.maximumZoomScale = 15;
    scrollView.minimumZoomScale = 0.5;
    scrollView.bounces = NO;
    scrollView.bouncesZoom = NO;
    scrollView.delegate = self;

    scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
    [self.view addSubview:scrollView];
    [scrollView release];
    [super viewDidLoad];}
     - (BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)interfaceOrientation{
    return YES;}

    -(void)tapDetected:(UIGestureRecognizer*)recognizer{

        ImageViewController *settings = [[ImageViewController alloc] init];
    [self.navigationController pushViewController:settings animated:YES];

    [settings release];}

@end

@implementation ImgScrollViewAppDelegate

    @synthesize window;@synthesize viewController;
    - (void)applicationDidFinishLaunching:(UIApplication *)application{
    LogMethod();
    // If you want the status bar to be hidden at launch use this:
    // application.statusBarHidden = YES;
    //
    // To set the status bar as black, use the following:
    // application.statusBarStyle = UIStatusBarStyleBlackOpaque;


    // Create window
    window = [[UIWindow 开发者_开发技巧alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // this helps in debugging, so that you know "exactly" where your views are placed;
    // if you see "red", you are looking at the bare window, otherwise use black
    // window.backgroundColor = [UIColor redColor];

    viewController = [ [ MainViewController alloc ] init ];

    navigationController = [ [ UINavigationController alloc ] initWithRootViewController: viewController ];

    /* Anchor the view to the window */
    [window addSubview:[navigationController view]];

    /* Make the window key and visible */
    [window makeKeyAndVisible];
} 
@end

in above code i have problem that is when check it on simulator then rotate device left and right. But view not change and i want to change it. how i modify it?


In your view controller implementation there is a method - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation. If you want it to rotate to any orientation, make it return YES. If you only want it to autorotate to some orientations, add an if statement to check and return yes or no.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜