Jon*_*nah 7 iphone center zoom uiscrollview
我有一个带缩放和平移的UIScrollView.我希望图像在用户命令后滚动到中心.我的问题在于计算图像中心的框架的大小和位置.
有谁知道如何为我的图像中心计算正确的帧?问题是如果zoomScale不同,则帧会发生变化.
谢谢!
Dan*_*uke 16
如果有人需要,可能会有更好的代码;-)
的UIScrollView + CenteredScroll.h:
@interface UIScrollView (CenteredScroll)
-(void)scrollRectToVisibleCenteredOn:(CGRect)visibleRect
animated:(BOOL)animated;
@end
Run Code Online (Sandbox Code Playgroud)
的UIScrollView + CenteredScroll.m:
@implementation UIScrollView (CenteredScroll)
-(void)scrollRectToVisibleCenteredOn:(CGRect)visibleRect
animated:(BOOL)animated
{
CGRect centeredRect = CGRectMake(visibleRect.origin.x + visibleRect.size.width/2.0 - self.frame.size.width/2.0,
visibleRect.origin.y + visibleRect.size.height/2.0 - self.frame.size.height/2.0,
self.frame.size.width,
self.frame.size.height);
[self scrollRectToVisible:centeredRect
animated:animated];
}
@end
Run Code Online (Sandbox Code Playgroud)
根据Daniel Bauke的回答,我更新了他的代码以包含缩放比例:
@implementation UIScrollView (jsCenteredScroll)
-(void)jsScrollRectToVisibleCenteredOn:(CGRect)visibleRect
animated:(BOOL)animated
{
CGPoint center = visibleRect.origin;
center.x += visibleRect.size.width/2;
center.y += visibleRect.size.height/2;
center.x *= self.zoomScale;
center.y *= self.zoomScale;
CGRect centeredRect = CGRectMake(center.x - self.frame.size.width/2.0,
center.y - self.frame.size.height/2.0,
self.frame.size.width,
self.frame.size.height);
[self scrollRectToVisible:centeredRect
animated:animated];
}
@end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16924 次 |
最近记录: |