UIImageView 在 UIScrollView 中捏缩放

2024-01-08

我对使用 UIScrollView 的捏合缩放功能感到满意。但问题是滚动视图中图像的长宽比。

目前,我有这个,下图:

但我希望图像适合屏幕,如下图所示:

景观也有同样的行为。我怎样才能实现这个目标?

下面是代码:

- (void)viewDidLoad
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    imgView.image = image;
    CGSize imageSize = image.size;
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);
    imgView.frame = rect;
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height);
    scrollView.maximumZoomScale = 4.0;
    scrollView.minimumZoomScale = 1.0;
    scrollView.delegate = self;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    CGSize imageSize = image.size;
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);
    imgView.frame = rect;

    [scrollView setContentOffset:CGPointMake(0, 0)]; 

    return YES;
}

您将 UIImageView 设置为图像的原始大小,而不是包含该图像的 UIScrollView 的大小。

- (void)viewDidLoad
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    imgView.image = image;

    imgView.frame = scrollView.bounds;
    [imgView setContentMode:UIViewContentModeScaleAspectFit];
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height);
    scrollView.maximumZoomScale = 4.0;
    scrollView.minimumZoomScale = 1.0;
    scrollView.delegate = self;
}

记得在 viewToZoom 委托方法上返回 imgView

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

UIImageView 在 UIScrollView 中捏缩放 的相关文章

  • 如何制作字幕 UILabel / UITextField / NSTextField

    我需要制作字幕UILabel在 Xcode 中 选取框将从右向左滚动 我试过CCScrollingLabel also JHTickerView和别的 但我找不到带有选框的简单代码 没有任何视图 数组 一些愚蠢的库和其他库 如何制作选框UI
  • iPhone - 动画视图控制器演示

    我有一个 UINavigationControl 我想呈现一个视图控制器 将其从顶部推送 并将其从视图中删除 将其推送到顶部 有没有办法更改调用时使用的默认动画 self navigationController pushViewContr
  • 如何在 Objective-C 中将 RGB 十六进制字符串转换为 UIColor?

    我有来自 url 数据的颜色值 如下所示 ff33cc 如何将此值转换为 UIColor 我正在尝试使用以下代码行 我没有正确获取 baseColor1 的值 看来我应该把那磅炭拿掉 还有其他方法吗 NSScanner scanner2 N
  • SplitViewController 与 TabbarController

    我在我的应用程序中使用分割视图功能 我必须将选项卡栏放在 rootViewController 中 但是 当我在选项卡栏中添加控制器并将它们添加到分割视图中时 它不会分割 它只显示detailViewController 这是应用程序中完成
  • 由于无法确认开发者身份而无法打开

    我在 Mac OSX 中开发了一个应用程序和守护进程 并且我已经在 xcode 中与开发者 ID 签署了应用程序和守护进程源代码 在守护进程中 我已经对每个框架进行了签名并打包 并且我使用软件包安装程序对所有框架进行了 pkg 现在我的应用
  • 将 Javascript 变量传递给 Objective-C

    我已经了解了如何将 Objective C 变量传递给 JavaScript 在ios中将目标c变量传递给javascript https stackoverflow com questions 3641968 passing object
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • scrollToRowAtIndexPath:atScrollPosition:动画滚动太慢

    基于分页 UIScrollView 的页面更改 我正在调用scrollToRowAtIndexPath atScrollPosition animated到所显示的该页面的表详细信息 void scrollViewDidScroll UIS
  • 快速找到一个数字的下一个倍数的方法

    我需要找到从基数开始的数字的第一个倍数 例如 7 中 3 的第一个倍数是 9 我的第一次尝试是这样做 multiple baseNumber while multiple number 0 multiple 最后 multiple 将具有第
  • NSMutableData 删除字节?

    我可以使用以下命令轻松地将字节添加到 NSMutableData 实例appendData方法 但是我没有看到任何类似的删除数据的方法 我是否忽略了某些内容 或者我是否需要创建一个新对象并仅复制我需要的字节 请参阅以下方法的文档 void
  • UIAlertView 中的 MPVolumeView?

    是否可以将 MPVolumeView 放入 UIAlertView 中 我已经尝试过put它在里面 但不显示 这可能是sizeToFit or initWithFrame 部分 有没有办法测试是否MPVolumeView实际上正在被创建吗
  • 取消交互式 UINavigationController 弹出手势不会调用 UINavigationControllerDelegate 方法

    如果拖动 a 的边缘UIViewController开始交互式流行过渡UINavigationController the UIViewController在电流下方有viewWillAppear 调用 然后是UINavigationCon
  • Apple 推送通知徽章编号

    我开发了服务器端应用程序 以在收到新通知后将徽章编号维护为递增或递减 并在看到通知后删除它工作正常 但是显示徽章时存在一些问题 实际情况是 在设备上收到新通知后 我单击取消按钮 然后徽章编号正确显示 但之后我将打开应用程序并关闭应用程序徽章
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • 多点触摸检测和区分 - Cocos2d for iPhone

    我想知道如何在多点触摸视图中检测和区分触摸 我读过有关 哈希 代码的内容 但我不明白如何使用它 我想知道我的两个精灵何时被同时触摸 就像在钢琴的两个琴键上按下和弦一样 编辑 以下是我的 TouchesBegan 的示例 void ccTou
  • iPhone / iPad IOS 应用程序仪器内存计数与 task_info 内存计数

    我一直在使用 Instruments Leak Tester 它给出了大约 1 3 meg 的应用程序总分配数字 但是 当使用 task info 时 它会报告更大的内存量 例如 10 20 meg 我想我只是想确认task info正在返
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • 如何获取 UITableView 内容视图的大小?

    我想在填充表格时获取 UITableView 内容视图的大小 关于如何执行此操作有什么建议吗 Allows you to perform layout before the drawing cycle happens layoutIfNee
  • 更改选项卡栏应用程序中的 UITableViewController 样式

    我有一个带有 4 个选项卡的选项卡栏 iPhone 应用程序 在界面生成器中 我为每个选项卡设置视图控制器 我想将一个 UITableViewController 的样式从普通样式更改为分组样式 我用这样的方式替换 init 方法 id i

随机推荐

  • 如何在 Jenkins 中签出 Bitbucket Git-LFS 存储库?

    我在 Bitbucket 服务器上安装了 Git LFS 并且可以将其克隆到我的 Mac 上 因为我是所有者 现在我正在尝试进行设置 以便 Jenkins 作业可以克隆存储库 等等我的 SCM 部分 Repository URL email
  • 在android中比较两次

    我尝试用下面的代码来比较两次 SimpleDateFormat sdf new SimpleDateFormat hh mm Date inTime sdf parse 11 00 Date outTime sdf parse 10 00
  • Firebase 不会将 OTP 发送到手机号码

    我面临着不同类型的问题 我在我的应用程序中使用 Firebase 手机号码身份验证 当我尝试将 OTP 发送到我正在使用的同一手机号码时 OTP 未发送 但是 如果我从我的手机发送 OTP 到其他手机 则 OTP 正在发送 我还发现 如果我
  • 将私钥存储到 Azure KeyVault,值已更改

    我尝试将私钥存储到 Azure Key Vault 但是当我检索它时 我的私钥被更改了 如果我将私钥放入 web config 文件中 它就可以正常工作 BEGIN RSA PRIVATE KEY MIIEowIBAAKCAQEAohoZ
  • 如何获取PDO中查询语句的类型?

    In the MySQL 参考手册 http dev mysql com doc refman 5 6 en sql syntax html 数据定义语句和数据操作语句之间存在区别 现在我想知道一个查询是否插入一条数据库记录 更新一条 删除
  • 如何使用 selenium webdriver 检查 webtable 中的 webelements 按字母顺序排序?

    我们的应用程序包含网络元素表 我的目的是检查目录是否按字母顺序排列 WebDriver d new FirefoxDriver d get http www javatpoint com wrapper class in java WebE
  • 关于依赖注入,什么时候使用抽象类而不是接口?

    我一直在阅读一些有关 SOLID 原则和依赖倒置的文章 从我的角度来看 我必须使用接口来与任何类对话 我的班级正在使用界面进行聊天 第一个问题 我使用的是抽象类 但对于代码的第二部分 我使用了接口 Usage1 namespace Depe
  • 使用带有多个标头的 urllib 发出 POST 请求会出现 400 Bad Request 错误

    我用过requests库 我知道如何使用它 但我只需要使用标准库 所以如果您不鼓励我使用 我将不胜感激requests反而 我制作了一个 Flask 服务器来处理 POST 请求 然后从我调用的不同脚本中处理urllib对 Flask 服务
  • 通过 Active Admin 使用 HABTM 或 Has_many

    我已经阅读了很多关于通过关联将活动管理与 has many 结合使用的帖子 但我没有得到预期的结果 本质上我有两个模型 会议 和 帐户 我需要将多个帐户分配给一个会议 并将多个会议分配给一个帐户 我是否使用 HABTM 或 has many
  • Threejs DataTexture 未更新

    更新 问题是每次都会重新创建 texData 对象 因此 DataTexture 的引用丢失 WestLangley 的解决方案是覆盖 texData 中的数据 而不是重新创建 texData 对象 我有一个简单的 Threejs 场景Da
  • C 位运算中 0x01 和 0x80 代表什么?

    我试图反转 C 中的位顺序 家庭作业问题 主题 按位运算符 我发现this https stackoverflow com questions 2602823 in c c whats the simplest way to reverse
  • 单个组件中的多个使用查询

    我无法通过使用 useQuery 以下面提到的方式获取数据 const data data1 useQuery Get Doctor const loading error data useQuery GET Branch 事实上你可以使用
  • 将数组的字符串表示形式转换为Python中的实际数组[重复]

    这个问题在这里已经有答案了 您好 通过网络做一些事情 想知道是否有任何方法可以将 python 数组作为字符串转换回 python 数组 例如 x 1 2 3 4 将 x 转换为 x array 1 2 3 4 如果它也适用于 numpy
  • 如何计算字符串中的行数?

    我正在从字符串中删除文本以及用空行替换每行的内容 一些背景 方法一 int numLines aDiff text Length aDiff text Replace Environment NewLine string Empty Len
  • EcmaScript 语法中的 [Yield、Await、In、Return] 是什么意思

    EcmaScript 中的许多产生式都带有以下 修饰符 Yield Await In Return 这里有一些例子 ArrayLiteral Yield Await ElementList Yield Await AssignmentExp
  • 是否可以在代码库中嵌入 Cockburn 风格的文本 UML 用例内容以提高代码可读性?

    在代码中试验 Cockburn 用例 我正在编写一些复杂的 UI 代码 我决定使用涉及鱼类 风筝和海平面的 Cockburn 用例 Martin Fowler 在他的 UML Distilled 一书中进行了讨论 我将 Cockburn 用
  • 我如何模拟查询字符串

    在最小起订量中使用以下内容 public Mock
  • 如何在 html/css/js 中创建折叠树形表格?

    我有一些要显示的数据 这些数据既是表格形式的又是分层的 我想让用户能够展开和折叠节点 除了功能性之外 有点像这样 http www maxdesign com au articles tree table http www maxdesig
  • AngularJS 过滤多个选择输入

    我真的很惊讶没有任何地方有任何关于 AngularJS 更高级过滤机制的文档或问题 它对于任何 UI 都是必不可少的 我需要过滤掉包含当前项目的选择选项 问题是当我们迭代时如何拼接每个选项items来到我们的过滤器 并为正在过滤的列表中的每
  • UIImageView 在 UIScrollView 中捏缩放

    我对使用 UIScrollView 的捏合缩放功能感到满意 但问题是滚动视图中图像的长宽比 目前 我有这个 下图 但我希望图像适合屏幕 如下图所示 景观也有同样的行为 我怎样才能实现这个目标 下面是代码 void viewDidLoad U