我有一个视图(myView),并且由于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的文本。
答案 0 :(得分:0)
听起来你正试图放大一些物品而不是其他物品。有两种方法可以解决这个问题。两者都不是很简单。您可以将标签分解为自己的视图,并在另一个视图上的捏合手势后手动重新定位它们。或者您可以将它们保留在此视图中,并在捏合后手动重新缩放并定位它们。无论哪种方式,你都必须做一些数学计算。