我有一个UIImageView显示比更宽更高的图像UIImageView.我想使用动画在视图中平移图像(这样平底锅很漂亮和平滑).
在我看来,我应该能够仅仅调整bounds.origin的UIImageView,和图像应移动(因为形象应与作为视图中绘制它的起源,对不对?),但似乎并没有工作.的bounds.origin变化,但图像绘制在相同的位置.
几乎可以工作的是改变contentsRect视图的层.但这开始是一个单位正方形,即使图像的可视区域不是整个图像.所以我不确定如何检测到图像的远边被拉入可视区域(我需要避免,因为它通过将边缘拉伸到无限远来显示,看起来很好,低于标准杆).
我的视图目前已通过Interface Builder contentsGravity设置kCAGravityTopLeft,如果这有所不同(是否导致图像移动?).但是,没有其他选择似乎更好.
更新:要清楚,我想在视图内移动图像,同时保持视图在同一点.
我有一个图形被绘制在一个UIScrollView.它是一个UIView使用自定义子类CATiledLayer作为其层的大型.
当我放大和缩小时UIScrollView,我希望图形动态调整大小,就像我从图表返回时一样viewForZoomingInScrollView.但是,Graph在新的缩放级别重绘自己,我想将变换比例重置为1x1,以便下次用户缩放时,变换从当前视图开始.如果我将转换重置为Identity in scrollViewDidEndZooming,它可以在模拟器中工作,但会EXC_BAD_ACCSES在设备上抛出.
这甚至都没有在模拟器上完全解决问题,因为下次用户放大时,变换将自身重置为它所处的任何缩放级别,因此看起来,如果我缩放到2x,例如,它突然达到4倍.当我完成缩放时,它以正确的比例结束,但实际的缩放行为看起来很糟糕.
首先:如何让图形在缩放后以1x1的标准比例重绘自己,如何在整个过程中进行平滑缩放?
编辑:新发现错误似乎是" [CALayer retainCount]: message sent to deallocated instance"
我自己永远不会释放任何图层.在此之前,我甚至没有删除任何观点或任何内容.在缩放和旋转时抛出此错误.如果我在旋转之前删除对象并在之后重新添加它,它不会抛出异常.这不是缩放的选项.
我正在尝试锻炼如何实现一个UIImage有捏/双击放大.这可能是标准UIImageView吗?
在文档中查看其他问题,必须完成一个UIScrollView?
资料来源:https://developer.apple.com/library/ios/documentation/windowsviews/conceptual/UIScrollView_pg/ZoomingByTouch/ZoomingByTouch.html
我看到的问题是上面的链接建议initWithImage在scrollView上使用,但这不可用?
我希望实现一个全屏的图像(不大),如果图像较大,它应该将Aspect缩放到适合整个屏幕.然后,用户可以双击或捏合以放大图像.这是正确的方法是什么?
我有一个UIImageView.我需要捏缩放.
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 90, 320, 38)];
[imageView setImage:[UIImage imageNamed:@"accesspanel.png"]];
[self.view addSubview: imageView];
Run Code Online (Sandbox Code Playgroud) 我有一个UIImage从相机捕获UIImagePickerController.
现在,在用户点击它之后,我希望它能够全屏显示,并能够使用捏合手势和双击手势来放大和缩小特定区域.换句话说,我想模仿ios的默认图像浏览器.
我用以下方式显示捕获的图像UIImageView:
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
Run Code Online (Sandbox Code Playgroud)
这使得图像全屏显示.但是我该如何实现缩放.我需要使用手势识别器从头开始吗?或者可能有一个默认的图像显示视图,其中所有实现的我都不知道?
cocoa-touch ×3
ios ×3
iphone ×3
ios7 ×2
objective-c ×2
uiimage ×2
uiimageview ×2
uiscrollview ×2
zooming ×1