iOS: Scaling UITextView with pinching?

后端 未结 5 2078
心在旅途
心在旅途 2020-12-05 03:33

I\'m interested in creating UITextView that is expanding dynamically while typing the text, and scaling as the user pinches the screen(Similar behaviour can be

5条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-05 04:19

    First of all add UIPinchGestureRecognizer in viewDidLoad method:

    UIPinchGestureRecognizer *pinchOnTextfield = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleTextFieldFontOnAddMusicVc:)];
    [self.myTextField addGestureRecognizer:pinchOnTextfield];
    

    then put this method in your viewController to scale textField font:

    - (void)handleTextFieldFontOnAddMusicVc:(UIPinchGestureRecognizer *)pinchGestRecognizer {
        if (pinchGestRecognizer.state == UIGestureRecognizerStateEnded || pinchGestRecognizer.state == UIGestureRecognizerStateChanged) {
            CGFloat currentFontSize = self.myTextField.font.pointSize;
            CGFloat newScale = currentFontSize * pinchGestRecognizer.scale;
    
            if (newScale < 20.0) {
                newScale = 20.0;
            }
            if (newScale > 60.0) {
                newScale = 60.0;
            }
    
            self.myTextField.font = [UIFont fontWithName:self.myTextField.font.fontName size:newScale];
            pinchGestRecognizer.scale = 1;
    
        }    
    }
    

提交回复
热议问题