[英]Scaling UIlabel Text using Gesture
我正在使用UIPinchGestureRecognizer縮放UILabel
文本。 但是我無法實現文本的平滑邊緣或平滑度。
擴展代碼:
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];
-(void)scale:(id)sender {
[self bringSubviewToFront:[(UIPinchGestureRecognizer*)sender view]];
if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) {
lastScale = 1.0;
return;
}
CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]);
CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);
[[(UIPinchGestureRecognizer*)sender view] setTransform:newTransform];
lastScale = [(UIPinchGestureRecognizer*)sender scale];
}
問題在於您正在使用轉換進行縮放。 它將采用原始渲染並將其放大或縮小,但不會更改。 換句話說:“質量”不會改變,只是以您顯示的大小為准。 相反,您可能想要執行以下步驟:
通過更改框架大小,可以使用新的大小再次繪制視圖,這將比放大較小的視圖產生更好的質量。
我不確定在捏合過程中是否可以更改框架(可能會與識別器混淆),也許您需要應用當前正在執行的轉換,並在手勢為空時執行change-frame-size-method完成捏操作后即可獲得高質量的版本(有時可以通過滾動視圖看到類似的圖案)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.