0

ビュー(myView)が1つあり、myViewにテキストが表示されるため、myViewにいくつかのラベルが作成されます。myViewにpinchgesturerecognizerを適用しました。それは非常にうまくいきました。私の問題は、myViewをつまむと、ラベルのテキストのサイズが、つまむことに応じて増減するように変更されることです。myViewをつまむ(ズームインする)と、ラベルのテキストのサイズが非常に小さいため、テキストが表示されません。myViewをつまむ(ズームアウトする)と、ラベルのテキストのサイズが大きくなります。

だから私はあなたがmyViewをズームインまたはズームアウトするものは何でもラベルのテキストのサイズを修正したいと思います。試しましたが、答えが得られませんでした。私も使っていますsetAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidthが、聞き取れませんでした。使い方がわかりません。私を助けてください。前もって感謝します。

私のコードは次のとおりです。

ViewController.m

   - (void)viewDidLoad
    {
        MyView *myView = [[MyView  alloc] initWithFrame:CGRectMake(0, 100, 200, 100)];
    [self.view addSubview:myView];
        [super viewDidLoad];
    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scalePiece:)];
        [pinchGesture setDelegate:self];
        [myView addGestureRecognizer:pinchGesture];
        [pinchGesture release];
    }

- (void)scalePiece:(UIPinchGestureRecognizer *)gestureRecognizer
{

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]);
           //[gestureRecognizer setScale:1];


    }
}

MyView.m

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 35, 20)];
label1.font = [UIFont fontWithName:@"Helvetica-Bold" size:10];
label1.text = @"label1";
[self addSubview:label1];

label2 = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 35, 20)];
label2.font = [UIFont fontWithName:@"Helvetica-Bold" size:10];
label2.text = @"label2";
[self addSubview:label2];



label3 = [[UILabel alloc] initWithFrame:CGRectMake(0, 40, 35, 20)];
label3.font = [UIFont fontWithName:@"Helvetica-Bold" size:10];
label3.text = @"label1";
[self addSubview:label3];

label4 = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 35, 20)];
label4.font = [UIFont fontWithName:@"Helvetica-Bold" size:10];
label4.text = @"label4";
[self addSubview:label4];
    }
    return self;
}

label1、label2、label3、label4のテキストを修正したいと思います。

4

1 に答える 1

0

一部のアイテムを拡大しようとしているようですが、他のアイテムは拡大していないようです。これにアプローチする方法は2つあります。どちらも非常に単純ではありません。ラベルを独自のビューに分割し、他のビューでピンチジェスチャした後に手動で再配置することができます。または、これらをこのビューに残して、ピンチ後に手動で再スケーリングして配置することもできます。いずれにせよ、あなたはいくつかの数学をしなければならないでしょう。

于 2012-06-05T12:13:13.723 に答える