UIScrollView:缩放后内容偏移计算

2024-04-19

有人可以建议在 UIScrollView 放大后使用哪个公式来计算内容偏移吗?让我们考虑以下示例: 我有一个 UIScrollView ,内容视图的大小为 (1000, 1000),那么如果我以编程方式setZoomScale到 2.0 并在scrollViewDidEndZooming:withView:atScale方法我将有以下:

contentSize before zoom = {1000, 1000}
contentOffset before zoom = {0, 0}
scale = 2.000000
contentSize after zoom = {2000, 2000}
contentOffset after zoom = {160, 230}

我需要知道 contentOffset {160, 230} 的新值是如何计算的。在这种情况下,用于计算内容偏移量的公式是否存在任何依赖性?

Thanks


这可能相关,也可能不相关,但请注意,160x230 是 iPhone 分辨率的一半,减去状态栏:320x460。尝试更改 UIScrollView 的框架或其超级视图的框架,并查看这对数字有何影响。

EDIT:想想看,偏移量是滚动视图大小的一半是完全有道理的,因为它将在两个方向上均匀扩展。所以,公式是:contentOffset = (scrollView.frame.size.width/2 * (scaleAfter - scaleBefore), scrollView.frame.size.height/2 * (scaleAfter - scaleBefore)).

因此,如果比例为 4.0f,则偏移量将为:(320/2 * (4-1), 460/2 * (4-1)) => (480, 690)。尝试使用 4 的比例,看看是否会出现 (480, 690)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIScrollView:缩放后内容偏移计算 的相关文章

  • 连续调用startRecordingToOutputFileURL:

    苹果文档 https web archive org web 20140814091047 http developer apple com library ios DOCUMENTATION AVFoundation Reference
  • iOS:在代码中访问 app-info.plist 变量

    我正在开发通用应用程序 并且希望访问代码中 app info plist 文件中存储的值 原因 我使用以下方法从故事板动态实例化 UIViewController UIStoryboard storyboard UIStoryboard s
  • UITableView 如何一次显示两个不同的数组?

    下面的代码有效 但不符合我的意愿 我希望当我单击 UIbutton 时 它会自动更新 UITableview 中的新值而不是旧值 下面的代码仅在我按下 UIbuttons 时有效 之后当我滚动 UITableview 时它会更新具有新值的
  • 一个 UITableView 中的两种不同的单元格类型

    大家好 我对如何在一个具有两个部分的 UITableView 中使用两种不同的单元格类型感到非常困惑 第一部分应返回一个大单元格 其中包含大量文本 另一部分应返回三个单元格 以导航到其他视图 我尝试过这样的 UITableViewCell
  • UIButton 未出现在 iPhone 5S 上

    总的来说 我对 iOS 开发和开发还很陌生 我一直在开发时间 记录保存应用程序 但遇到了一个奇怪的问题 在我的一个视图控制器上 我有一个 UITableView 每个单元格都是一个按钮 可通往不同的视图控制器 在第一个单元格上 用户应该能够
  • 如何使用 iPhone SDK 访问身份配置文件和证书?

    我正在尝试使用用户通过打开电子邮件附加的 cer p12 存储的证书 身份来验证我的应用程序上的用户身份 该证书显示在手机设置应用程序的 配置配置文件 组下 有没有什么方法可以使用iphone SDK访问证书 我尝试使用安全框架 但似乎只能
  • 如何发布和接收 NSNotifications(目标 C) |通知(Swift 中)?

    是否有一种易于理解的模式如何发送 NSNotification 目标 C 通知 Swift 中 以及如何接收通知 代码片段 文档关于这个主题写了大约 150 页 想看一个简单的例子 发送通知 NSNotificationCenter def
  • 为什么我的 x 轴在 iPhone 上不显示核心图?

    编辑 我认为我的问题更好地表述为 我怎样才能有一个不从零开始的 Y 轴 看起来 x 轴总是放置在 y 0 处 但我希望 x 轴位于 y 轴上的某个正数 这是一张包含更多常规数据的图表 我只是希望将 x 轴放置在绘图的最小 y 值 大约 77
  • 如何创建适用于 iPhone、iPad 和 Android 的 Extjs 应用程序?

    有人成功创建了适用于 iPhone iPad 和 Android 的 Extjs 应用程序吗 我知道 Sencha 不支持移动设备上的 Extjs 但我不想创建另一个仅针对移动设备的网站 我不需要奇特的移动界面 只需要基本的功能 我做了一些
  • iPhone 存储大量图像

    我有大量与 sqlite 数据库中的记录相对应的图像 我应该把它们存放在哪里 我有同一张图像的 3 个版本 大号 中号 拇指号 我不想将它们存储在数据库表中 而是从每条记录中引用它们 所有图像都具有相同的名称 每个小 中和大图像文件都将被称
  • 这是 NSDateFormatter 风格 12 月 18 日星期五

    我想知道这个日期格式是什么Friday December 18th这也是标准的日期格式 或者我必须付出一些努力才能得到这个 Thanks 我不认为th可以通过格式化程序来实现 虽然你可以这样做 NSDate today NSDate dat
  • 如何在UITextField上自动打开键盘?

    我有一个非常简单的表格 当触摸单元格时 它会打开一个带有一个 UITextfield 的新视图 我想要的只是键盘会自动打开 而用户无需触摸 UITextfield 这一切都是在 Interface Builder 中完成的 所以我不确定如何
  • 如何在 iphone 和 ipad 的通用应用程序中调用 [[UIScreen mainScreen] 缩放]

    我正在制作一个可以在 ipad 和 iphone 上运行的通用应用程序 到目前为止一切顺利 但我刚刚将我的 SDK 更新到 ios4 并且想要调用 UIScreen mainScreen scale scale 不在 3 2 sdk 中 并
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置
  • iOS 中的视频可以进行反卷积吗?

    我想拍摄击球手挥动棒球的镜头 但球棒很模糊 视频为 30 fps 通过研究 我发现反卷积似乎是最小化运动模糊的方法 但我不知道是否或如何在我的 iOS 应用程序后处理中实现它 我希望有人能给我指出正确的方向 比如如何在 iOS 中应用反卷积
  • 对 Objective-c 对象数组进行排序

    所以我有一个自定义课程Foo有许多成员 interface Foo NSObject NSString title BOOL taken NSDate dateCreated 在另一堂课上我有一个NSMutableArray包含这些对象的列
  • 锁定时 AVAudioPlayer 在 iPhone 5 中不播放音频

    使用 AVAudioPlayer 我尝试在 iphone 播放器播放时播放声音 当设备锁定时也是如此 问题是 在 iPhone 4s ios 7 中 效果很好 但在带有 6 和 7 ios 的 iPhone 5 上没有任何反应 In the
  • MPMoviePlayerViewController,删除 Quicktime 符号/添加背景图像?

    我有一个播放音频的 MPMoviePlayerViewController 我想删除 Quicktime 徽标和 或向播放器添加自定义背景图像 但保留播放控件 我发誓我在 iOS 5 之前就已经这样做过 但我无法重新弄清楚 我尝试过的事情
  • 文件中缺少所需的架构 i386

    添加 MapKit 和 CoreLocation 框架后 我在构建应用程序时遇到问题 它们都是 4 3 框架 并且该应用程序过去可以与 UIKit CoreGraphics 和 Foundation 一起正常工作 只是这两个框架给我带来了问
  • 为 iPhone SDK 优化绘图(用手指触摸)应用程序

    我正在编写一个使用手指绘制简单图表的应用程序 我让它在大部分情况下都能工作 但现在我正在尝试优化它的性能 当用户快速滑动手指时 我无法捕获足够的触摸事件来绘制平滑的路径 这是我目前的方法 1 我对 UIView 进行了子类化 并向 CGLa

随机推荐

  • 在 Gulp 中将流与事件流连接时的顺序

    在此 Gulp 任务中 vendorFiles 代码放置在 dest style css 文件中的 appFiles 代码之后 这是因为 appFiles 流运行得更快吗 如何让vendorFiles代码按预期出现在前面 gulp task
  • 从线程内更新网页

    我有一个运行冗长过程的网页 除了在页面上显示进度之外 所有这些都在工作 我有以下进度条 引导程序 div class col md 8 div
  • 如何在 WPF 中使用 MVVM 从另一个视图打开一个视图

    我是 MVVM 新手 很长一段时间以来我都无法得到这个问题的答案 不知道是问题太难还是我没有解释清楚 我有 MainWindow Xaml 其中包含一个文本块和一个用于从文本块接收数据的按钮 现在当我按下按钮时 它应该打开第二个名为 tab
  • JavaFx 如何避免创建一个巨大的控制器

    我在 JavaFX 中有一个应用程序 它有带有菜单和工具栏的主场景 以及在按下菜单按钮之一后注入到该主场景中的较小场景 现在 HomeCntroller 负责场景组件 主场景 带有工具栏和菜单 和注入场景 如果注入的场景数量超过一个 这会导
  • kotlin 中的 init 块和构造函数有什么区别?

    我已经开始学习 Kotlin 了 我想知道之间的区别init块和constructor 这之间有什么区别以及我们如何利用它来改进 class Person constructor var name String var age Int va
  • 搭建控制器时引发的调用目标已引发异常

    我创建了一个单独的类库项目来存储数据库上下文和模型类 在同一解决方案中 我创建了一个 ASP NET MVC 项目并引用了类库项目 并在项目的 Web config 文件中包含了数据库上下文的连接字符串 但是 当我尝试添加控制器 带有视图
  • NIntegrate - 为什么在这种情况下 Mathematica 8 的速度要慢得多?

    我有一个 Mathematica 代码 我必须在数值上评估数千个与此类似的积分 NIntegrate Pi Cos Pi 2 x y 1 y 1 y Sin 2 Pi x 1 y Sin Pi 2 x y 1 y E x 1 y x 0 1
  • 如何在“系统偏好设置 > 键盘 > 修饰键...”中更改修饰键

    我需要以编程方式更改 系统偏好设置 gt 键盘 gt 修饰键 中的 Caps Lock Control Option 和 Command 键的值 我不想使用 AppleScript 有人能指出我正确的方向吗 这是 applescript c
  • 为什么使用 --follow 和 --reverse 的 git log 仅返回最后一次提交?

    我想从头开始反向查看文件的所有提交 我跑了 git log reverse file 它按预期工作 但对于重命名的文件 它仅显示重命名的提交 因此我在其中添加了 follow git log reverse follow file 但它现在
  • AntiForgeryToken 在 ASP.Net MVC 4 RC 中已弃用

    我刚刚安装了 ASP Net MVC 4 RC 来替换 ASP Net MVC 4 beta 当尝试运行现有应用程序时 我收到一条错误消息 AntiForgeryToken已被弃用 这是我的代码 using Html BeginForm F
  • 在 JavaScript 中创建 1..20 整数数组的最简洁方法

    创建此数组的最简洁方法是什么 var x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 例如 一个for loop var x for var i 1 i lt 20 i x push
  • PHP:对象上的递归 htmlspecialchars

    我想为来自不同来源的数据建立一个通用的清理程序 对于清理 我的意思是 在这个阶段 将 htmlspecialchars 应用于字符串 现在 来自这些源的数据可以是任何东西 从对象到数组再到字符串 都是嵌套的 而且很复杂 并且格式总是有点不同
  • java.lang.IllegalArgumentException:无效的 URL:未知协议:f

    我需要编写一个程序来在javafx场景中显示图片 我使用ImageView来显示它 但我遇到了一个问题 线程 main 中的异常 java lang IllegalArgumentException 无效的 URL 未知协议 f 引起原因
  • 如何禁用 onclick 事件

    如何禁用 onclick 事件 我试过了onclick this disabled true 但它不起作用 这是一个 HTML 表格 table tr td Available td td Available td tr tr td div
  • 动画 div 高度一个接一个 onload javascript

    我已经成功地开始了我的动画工作 现在我希望其余的动画在每个动画之后稍微延迟div高度动画及其引起的问题 我尝试过使用getElementsByClassName但这并没有奏效 我已经发布了到目前为止的进展here https codepen
  • 重写 bool 抽象方法时出错

    我不明白为什么我的派生类中会出现此错误来覆盖方法布尔值 public class HotRod Racer private bool blower true false public HotRod public HotRod string
  • Node.js 和 C/C++ 集成:如何正确实现回调?

    我正在尝试实现一个与 Node js 集成的 C 扩展 该扩展将在内部调用一些阻塞调用 因此它需要为 Node js 世界提供一个非阻塞接口 如指定https nodejs org api addons html https nodejs
  • 防止 GNU make 在环境变量中扩展美元符号

    有没有办法让 GNU Make 在环境变量中按字面意思解释美元符号 获取这个 makefile echoFOO echo FOO 像这样运行它 FOO a bc make echo ac ac 我希望它能从字面上回应 a bc 但我找不到一
  • 在客户端 API 中使用 JWT 令牌

    我在 NET5 中有一个 API 使用 JWTBearer 来保护 API 现在我想配置我的客户端应用程序以使用从 api gettoken 生成的令牌 它在 swagger 中工作得很好 但我不知道如何配置我的 MVC 和 API 消费
  • UIScrollView:缩放后内容偏移计算

    有人可以建议在 UIScrollView 放大后使用哪个公式来计算内容偏移吗 让我们考虑以下示例 我有一个 UIScrollView 内容视图的大小为 1000 1000 那么如果我以编程方式setZoomScale到 2 0 并在scro