这个问题是similar to this one,但希望由于我尝试了一些东西,它会引起更多的兴趣。
我正在尝试在UITextView中进行标准的捏合滚动。我的委托实现UITextViewDelegate
并实现此方法
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self;
}
[实际上这可能是错误的,但返回[[self subviews] objectAtIndex:0]
没有改变任何事情(奇怪的是)。
所以捏合的东西可以工作,但是当有缩放时,UITextView实例会失去允许我正确平移内容的所有概念。我试图通过包含这个方法来解决这个问题
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
CGSize size = self.contentSize;
size.width *= scale;
size.height *= scale;
self.contentSize = size;
}
但所有这些猜测并没有让我走得太远(毫不奇怪)。
编辑:我做过这样的事情,除了它稍微爆炸之外,它不是我想要的。这是action
的{{1}}方法:
UIPincheGestureRecognizer
答案 0 :(得分:3)
我知道这是旧的,但我最近遇到了麻烦所以希望这有助于某人:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
for(UIView *subView in self.subviews)
{
if([subView isKindOfClass:[UIWebDocumentView class]])
return subView;
}
return [self.subviews lastObject];
}
答案 1 :(得分:0)
添加此项将为缩放添加许多连贯性。你也可以调整文字宽度,我现在要研究它:
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
frameBeforeZooming = self.frame;
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
self.frame = frameBeforeZooming;
}
显然你需要在标题中定义一个CGRect。