2016-03-08 88 views
1

我想放大和縮小UITextView字體大小使用捏手勢。
我在UITextView上應用粗體,斜體,下劃線等樣式。
但是,當我放大和縮小,格式化已經消失。
我該如何解決這個問題?當我放大和縮小textview字體大小使用捏手勢,UITextView格式不見了

我使用下面的代碼:

- (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; 

    } 

} 
+0

你看這個好方法http://stackoverflow.com/questions/13669457/ios-scaling-uitextview-掐 –

回答

1

目標C

#import "ViewController.h" 

@interface ViewController()<UIGestureRecognizerDelegate> 
{ 
    UITextView * txtV; 
    UIPinchGestureRecognizer *pinchGestureRecognizer; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    txtV=[[UITextView alloc]initWithFrame:CGRectMake(20, 50, 280, 300)]; 
    txtV.text = @"Jai Maharashtra"; 
    txtV.userInteractionEnabled=YES; 
    txtV.font= [UIFont italicSystemFontOfSize:[UIFont systemFontSize]]; 
    [self.view addSubview:txtV]; 

    pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:)]; 
    pinchGestureRecognizer.delegate=self; 
    [txtV addGestureRecognizer:pinchGestureRecognizer]; 
} 

- (void)pinchGesture:(UIPinchGestureRecognizer *)gestureRecognizer 
{ 
    NSLog(@"*** Pinch: Scale: %f Velocity: %f", gestureRecognizer.scale, gestureRecognizer.velocity); 

    UIFont *font = txtV.font; 
    CGFloat pointSize = font.pointSize; 
    NSString *fontName = font.fontName; 

    pointSize = ((gestureRecognizer.velocity > 0) ? 1 : -1) * 1 + pointSize; 

    if (pointSize < 13) pointSize = 13; 
    if (pointSize > 42) pointSize = 42; 

    txtV.font = [UIFont fontWithName:fontName size:pointSize]; 
} 
+0

請正確閱讀我的問題。 –

+0

UITextView格式化沒有被這段代碼消除,UITextView也放大和縮小,我添加字體如[UIFont italicSystemFontOfSize:[UIFont systemFontSize]]; –

+0

我不想放大UITextView或UIScrollview。我只想縮放UITextview的字體。@ Shrhrikant Tanwade –