UIVc中UITcrollView中的UITextView:IBOutlet层次结构?

时间:2013-04-29 09:56:02

标签: uiscrollview iboutlet

我在UITextView里面的UIScrollView里面有一个UITextView。 我想为UITextView添加“缩放技能”。

我添加了< ... UIScrollViewDelegate>在.h文件中。 我把它添加到.m文件中。

@synthesize myTextView;
@synthesize scrollView;

- (void)scrollViewDidZoom:(UIScrollView *)sv
{
    float zoomScale = sv.zoomScale;
    if (zoomScale < 3)
    {
        if(zoomScale < 0.5)
        {
            UIFont* myFont = [UIFont systemFontOfSize:12];
            myTextView.font = myFont;
        }else{
            UIFont* myFont = [UIFont systemFontOfSize:(zoomScale * 12)];
            myTextView.font = myFont;
        }
        UIFont* myFont = [UIFont systemFontOfSize:36];
        myTextView.font = myFont;
    }
}

永远不会调用“scrollViewDidZoom”。

我使用界面构建器成功添加了这些对象。说实话,我有点迷茫。 我不知道如何创建出口和代表(具有3级层次结构)。

1 个答案:

答案 0 :(得分:1)

我意识到使用UIPinchGestureRecognizer有一种简单的方法。

- (void)viewDidLoad
{
    //...
    UIPinchGestureRecognizer *pinchGest = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(changeTextViewFontSize:)];
    pinchGest.delegate = self;
    [myTextView addGestureRecognizer:pinchGest];
    [pinchGest release];
}

- (void)changeTextViewFontSize:(UIPinchGestureRecognizer *)p 
{
    CGFloat zoomVelocity = [(UIPinchGestureRecognizer *)p velocity];
    UIFont *font = self.myTextView.font;
    CGFloat pointSize = font.pointSize;
    NSString *fontName = font.fontName;

    pointSize = ((zoomVelocity > 0) ? 1 : -1) * 1 + pointSize;

    if (pointSize < 8) pointSize = 8;
    if (pointSize > 32) pointSize = 32;

    self.myTextView.font = [UIFont fontWithName:fontName size:pointSize];
}

谢谢Aral Balkan:http://aralbalkan.com/3831/