简体   繁体   中英

How to add movable UIView as subview with dynamic size at runtime in objective C?

I need to add a UIView as subview of a UIView where a UIImageview is displayed. What I need to implement is that when the image is loaded in my UIIMageview, at the same time I am showing the UIView call it as newView. In the beginning,I am showing it with static size say 190X170 and alpha as 0.5. Once i tap my finger on that view,it should move on the whole UIImageview. Once it is moved at the last,that coordinated I am taking and cropping my image with the same points. Now I am done with the moving part using the code below.

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{    
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchLocation = [touch locationInView:self.view];
    if (CGRectContainsPoint(newView.frame, touchLocation)) 
    {
        dragging = YES;
        oldX = touchLocation.x;
        oldY = touchLocation.y;
    }
    if (dragging) 
    {     
        newView.layer.borderColor = [UIColor clearColor].CGColor;
        newView.layer.borderWidth = 1.0f;
        CGRect frame = newView.frame;
        frame.origin.x = newView.frame.origin.x + touchLocation.x - oldX;
        x = frame.origin.x;        
        NSLog(@"x value : %d",x);

        frame.origin.y =  newView.frame.origin.y + touchLocation.y - oldY;    
        y = frame.origin.y;
        NSLog(@"y value : %d",y);
        newView.frame = frame;
    }
    oldX = touchLocation.x;
    oldY = touchLocation.y;
}

What I need to implement is to resize the UIView on taping two fingers like that of UIScrollview. I tried to implement the UIScrollview but it is not giving me good effect. I tried to implement NSUInteger resizingMask = NSViewHeightSizable | NSViewWidthSizable; [self.view setAutoresizesSubviews:YES]; [newView setAutoresizingMask:resizingMask]; NSUInteger resizingMask = NSViewHeightSizable | NSViewWidthSizable; [self.view setAutoresizesSubviews:YES]; [newView setAutoresizingMask:resizingMask]; but in vain. Nothing is taking place.

Can anybody show me a path for the same. Thanks in advance.

To provide the zoom in zoom out feature you can use the UIPinchGuestureRecognizer. If you are using iOS 5 then it will be pretty easy for you.

here is the very cool tutorial for that hope it will help for you.

http://www.raywenderlich.com/6567/uigesturerecognizer-tutorial-in-ios-5-pinches-pans-and-more

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM