ios - How to display fixed size text on UIView using pinchgesturerecognizer? -
i have 1 view(myview) , labels created on myview because of display text on myview. applied pinchgesturerecognizer on myview. it's worked well. problem when pinch on myview size of text of labels changed either increase or decrease depend on pinching. if pinch (zoom in) myview, sizes of text of labels small can't see text. if pinch (zoom out) myview, sizes of text of labels big.
so fix size of text of labels whatever zoom in or zoom out myview. have tried did not answer. use setautoresizingmask:uiviewautoresizingflexiblewidth | uiviewautoresizingflexiblewidth didn't it. don't know how use it. please me. in advance.
my code is:
in 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]; } } in 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; } i fix texts of label1, label2,label3, label4.
it sounds trying zoom in on items not on others. there 2 ways approach this. neither simple. break out labels own view , manually reposition them after pinch gesture on other view. or leave them in view , manually rescale , position them after pinch. either way you'll have math.
Comments
Post a Comment