Ios 使用UITextview调整字体大小

Ios 使用UITextview调整字体大小,ios,iphone,resize,uilabel,uitextview,Ios,Iphone,Resize,Uilabel,Uitextview,我想创建UITextView,它可以通过一个手指触摸(平移手势)进行缩放和旋转。但问题是文本字体大小没有正确缩放。请帮忙 它可以工作,但并不完美 -(void)resizeTranslate:(UIPanGestureRecognizer *)recognizer { if ([recognizer state]== UIGestureRecognizerStateBegan) { prevPoint = [recognizer locationInView:v

我想创建
UITextView
,它可以通过一个手指触摸(平移手势)进行缩放和旋转。但问题是文本字体大小没有正确缩放。请帮忙

它可以工作,但并不完美

-(void)resizeTranslate:(UIPanGestureRecognizer *)recognizer
{

    if ([recognizer state]== UIGestureRecognizerStateBegan)
    {
        prevPoint = [recognizer locationInView:vw_txtfield.superview];
        [vw_txtfield setNeedsDisplay];
        olddistance = sqrt(pow((vw_txtfield.frame.origin.x - prevPoint.x), 2.0) + pow((vw_txtfield.frame.origin.y - prevPoint.y), 2.0));

    }
    else if ([recognizer state] == UIGestureRecognizerStateChanged)
    {

        CGPoint point = [recognizer locationInView:vw_txtfield.superview];
        newdistance = sqrt(pow((vw_txtfield.frame.origin.x - point.x), 2.0) + pow((vw_txtfield.frame.origin.y - point.y), 2.0));


        float wChange = 0.0, hChange = 0.0;


        wChange = newdistance / olddistance ;//Slow down increment

        NSLog(@"wchange %f",wChange);


        hChange= newdistance / olddistance;

        NSLog(@"hchange %f",hChange);

        if (txt_LableText.font.pointSize<=6 && wChange<1) {
            return;
        }
        else
        {

            vw_txtfield.bounds = CGRectMake(vw_txtfield.bounds.origin.x, vw_txtfield.bounds.origin.y, vw_txtfield.bounds.size.width * (wChange), vw_txtfield.bounds.size.height * (hChange));
            [txt_LableText setContentScaleFactor:   newdistance / olddistance ];
            float int_NewFontsize= ( newdistance / olddistance)  * txt_LableText.font.pointSize;
            NSLog(@"font size %f",int_NewFontsize);
            [txt_LableText setFont:[UIFont fontWithName:txt_LableText.font.fontName size:int_NewFontsize]];

            prevPoint = [recognizer locationInView:vw_txtfield.superview];
            [vw_txtfield setNeedsDisplay];
            olddistance = sqrt(pow((vw_txtfield.frame.origin.x - point.x), 2.0) + pow((vw_txtfield.frame.origin.y - point.y), 2.0));
        }
    }
    else if ([recognizer state] == UIGestureRecognizerStateEnded)
    {

        prevPoint = [recognizer locationInView:vw_txtfield.superview];
        [vw_txtfield setNeedsDisplay];
     }
}
-(void)resizeTranslate:(UIPangestureRecognitor*)识别器
{
if([Recognitor state]==UIgestureRecognitzerState开始)
{
prevPoint=[识别器位置视图:vw_txtfield.superview];
[vw_txtfield设置需要显示];
olddistance=sqrt(功率((vw_txtfield.frame.origin.x-prevPoint.x),2.0)+功率((vw_txtfield.frame.origin.y-prevPoint.y),2.0);
}
else if([Recognitor state]==UIgestureRecognitzerStateChanged)
{
CGPoint point=[识别器位置视图:vw_txtfield.superview];
newdistance=sqrt(功率((vw_txtfield.frame.origin.x-point.x),2.0)+功率((vw_txtfield.frame.origin.y-point.y),2.0);
浮动wChange=0.0,hChange=0.0;
wChange=newdistance/olddistance;//减慢增量
NSLog(@“wchange%f”,wchange);
hChange=新距离/旧距离;
NSLog(@“hchange%f”,hchange);

如果(txt_LableText.font.pointSize)添加了一些代码,那么我们可以帮助您。您的
UITextView
是可编辑的吗?一个想法:尝试使用
UITextView
的初始帧,而不是使用最后一帧。这可能会奏效。您喜欢这个问题吗?