UIImageView 中的 UIImage 大小

2023-11-30

我有一些UIImage并将其显示在UIImageView.

我需要使用UIViewContentModeScaleAspectFit内容模式。

这是简单的代码:

UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
imageView.image = self.image;
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView];
[imageView release];

如何知道屏幕上显示的图像的大小?有没有任何解决方案、属性或者我应该手动计算它?

EDIT:

我了解该房产image.size.

self.image.size->>> 原始图像尺寸

imageView.image.size->>> imageView 的大小,但不是显示图像的大小。

我询问显示的尺寸取决于imageView's size这是contentmode.


这里有一个类别UIImageView您可以使用它来根据UIViewContentMode在图像视图上设置:

@implementation UIImageView (JRAdditions)

- (CGRect)displayedImageBounds {
    UIImage *image = [self image];
    if(self.contentMode != UIViewContentModeScaleAspectFit || !image)
        return CGRectInfinite;

    CGFloat boundsWidth  = [self bounds].size.width,
            boundsHeight = [self bounds].size.height;

    CGSize  imageSize  = [image size];
    CGFloat imageRatio = imageSize.width / imageSize.height;
    CGFloat viewRatio  = boundsWidth / boundsHeight;

    if(imageRatio < viewRatio) {
        CGFloat scale = boundsHeight / imageSize.height;
        CGFloat width = scale * imageSize.width;
        CGFloat topLeftX = (boundsWidth - width) * 0.5;
        return CGRectMake(topLeftX, 0, width, boundsHeight);
    }

    CGFloat scale = boundsWidth / imageSize.width;
    CGFloat height = scale * imageSize.height;
    CGFloat topLeftY = (boundsHeight - height) * 0.5;

    return CGRectMake(0, topLeftY, boundsWidth, height);
}

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

UIImageView 中的 UIImage 大小 的相关文章

  • UITextFieldDelegate 与 UITextField 控件事件

    如果我想处理 UITextField 的更改 例如用户在其中键入 看起来这可以通过将委托分配给该文本字段 然后让委托实现 shouldChangeCharactersInRange 来完成 或者通过将目标添加到文本字段并处理 UIContr
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • Objective Flickr 照片上传错误

    我正在使用 ObjectiveFlickr 库将照片从我的 iPhone 应用程序上传到 Flickr 我可以授权该应用程序并执行一般请求 但在尝试上传照片时遇到错误 要上传的照片是使用 AVFoundation 捕获的图像 这是相关代码
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • UISearchController 保留问题

    我正在尝试使用 UISearchController 但是我遇到了无法解决的保留问题 MainTableview 有两个部分 第1节 基于某些正则表达式过滤数据 第2节 All Data 我将 UISearchController 添加到我
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • SpriteKitPhysicsBody非矩形碰撞

    pipeUp physicsBody SKPhysicsBody rectangleOfSize pipeUp size 在此编码中我使用了rectangleOfSize对于碰撞物理体 但如果我想按像素仅使用图像的形状 我应该使用什么而不是
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 当您感兴趣的任务完成时,是什么让完成处理程序执行该块?

    我一直在询问并试图了解完成处理程序是如何工作的 我用过很多 也读过很多教程 我将在这里发布我使用的代码 但我希望能够创建自己的代码 而无需使用其他人的代码作为参考 我理解这个完成处理程序 其中调用者方法 void viewDidLoad n
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • 按下表格视图单元格时更改视图?

    我需要帮助 当我的 tableView 的单元格被选择时 我希望该单元格转到它自己的页面 我不希望每个单元格都转到同一页面 我尝试使用 FirstFolderViewController first FirstFolderViewContr
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您

随机推荐

  • 包含用户名数据的 AutoCompleteCustomSource 不起作用

    我正在尝试创建一个具有自动完成功能的文本框 在我的表单的构造函数中 我从数据库获取数据并设置文本框AutoCompleteCustomSource属性到用户名数组 由于某种原因 自动完成功能不起作用 我确信没有任何问题db getUsers
  • C++ 中指针的地址交换

    如何在具有签名的函数内交换指针地址 比方说 int weight height void swap int a int b 因此 在退出该函数之后 实际参数的地址 weight and height 将被改变 有可能吗 如果要交换指针指向的
  • 为什么不使用 MD5 进行密码哈希处理?

    我有一个朋友 他是白帽黑客 他说 md5 并没有那么糟糕 而且实际上非常安全 只要我们正确使用它 我相信他是对的 据我所知 有3种方法可以破解哈希值 使用彩虹表 可以通过长 随机盐来保护 碰撞 可以通过多种盐或哈希来防止 如下例所示 生成时
  • 使用cmake为vs2013配置cuda项目并得到“无效设备功能”错误

    我使用cmake gui工具在vs2013中配置我的cuda项目 CMakeLists txt如下 project CUDA PART required cmake version cmake minimum required VERSIO
  • 为什么我会收到带有受保护静态成员的 C2248(无法访问的成员)?

    假设我有 include
  • 使 JFormattedTextField 的行为类似于 ATM 输入

    我想知道是否有办法使 JformattedTextField 或 jtextField 表现得像 atm 货币输入 我的意思是你从右到左输入 假设你输入 10 你需要再按 2 个 0 这样它就会是 10 00 当他从右向左打字时 程序会自动
  • 使用 Firebase 的 WebRTC 语音聊天

    我以前从未尝试过 webrtc 我有一个使用 Firebase 制作的应用程序 现在我正在尝试在其中添加语音通话功能 因此尝试搜索一些教程 大多数都使用 PubNub 或大多数教程基于网络应用程序 我看到了这个 stackoverflow
  • 当 fps 高于 15 时,Pygame 蛇速度太高

    在我用 pygame 制作的蛇游戏中 我很难弄清楚速度的物理原理 问题是 一旦我将 fps 设置为高于 15 蛇的速度也会增加 我知道这与毫秒等有关 我发现它可以工作 高帧率但速度慢 然而那时 我无法让 X 和 Y 正确 这样我就可以吃苹果
  • 尽管设置了 Djava.library.path 变量,仍出现 UnsatisfiedLinkError

    我正在尝试将 IBM 的 CPLEX 库与我的 java 应用程序集成 现在 我只是尝试创建一个 IloCplex 对象 我添加了 Cplex jar 它编译得很好 但是当我运行它时 public class cplexTest publi
  • 在Java中,我可以定义二进制格式的整数常量吗?

    与如何用十六进制或八进制定义整数常量类似 我可以用二进制来定义吗 在 Java 7 中 int i 0b10101010 旧版本的 Java 中没有二进制文字 请参阅其他答案以获取替代方案
  • 具有二进制颜色编码和原始输入注释的 Seaborn 热图

    我需要根据数据帧列中的值是高于还是低于阈值 将它们显示为二进制颜色图 我还需要显示原始数字 我正在使用seaborn 热图 样本数据框 Month Raw value Jan 3 72 feb 2 51 Mar 1 82 我已将该列转换为二
  • PHP file_exists($var) 不工作

    我正在尝试在笔记本上编写一些代码并使用 xampp 环境 我有以下代码 class A foreach blocks as block block dir dir2 block if file exists block true var f
  • 视图中的动态列名称 (Postgres)

    我目前正在编写一个 SQL 视图 它应该提供特定月份填充字段的计数 这就是我希望构建视图的方式 Country Current Month 12 Eg Feb 2011 Current Month 11 Current Month 10 U
  • 如何使用正则表达式查找并删除文件中的重复行? [关闭]

    Closed 这个问题是无关 目前不接受答案 这个问题与语言无关 仅使用正则表达式 我可以查找并替换文件中的重复行吗 请考虑以下示例输入和我想要的输出 输入 gt gt 11 22 22 lt duplicate 33 44 44 lt d
  • Android - 在本机和 Java 应用程序之间使用管道

    我正在 SGS2 api v 16 上进行开发 我有两个应用程序 本机和 Java 在本机应用程序中 我使用 mkfifo 函数打开一个 Unix 管道并向其写入一些字符串 在java应用程序中 我试图读取字符串 但不知何故 应用程序阻塞了
  • PHP 从 xml 属性中读取十进制整数

    我想使用 PHP 编写一个函数 从 XML 中获取数字 然后将这些数字相乘 但是 我不知道如何在 SimpleXML 中使用十进制数字 PHP xml new SimpleXMLElement
  • jquery droppable -> 避免多次删除同一对象

    我有一个包含不同可拖动元素的容器 并且有一些 目标 div 的列表 用户可以在其中放置可拖动元素 例子 想象一下 您有一个 标签 列表 房屋 计算机 汽车 和一些作为目标的文档列表 所有文档都是 div 的一部分 div 因此 目标是使用拖
  • 基本 wxWidgets 定时器

    作为 wxWidgets 的新手 我需要一些如何让 wxTimer 工作的示例代码 参考资料提供了 3 种使用方法 但不包含其中任何一种的示例代码 最理想的情况是 我想让方法 2 发挥作用 来自samples widgets gauge c
  • 计算PostgreSQL中批量查询影响的行数

    首先 是的 我已经阅读了 DO 语句的文档 http www postgresql org docs 9 1 static sql do html 所以我的问题是 我需要执行一些包含 UPDATE 语句的动态代码块并计算所有受影响的行数 我
  • UIImageView 中的 UIImage 大小

    我有一些UIImage并将其显示在UIImageView 我需要使用UIViewContentModeScaleAspectFit内容模式 这是简单的代码 UIImageView imageView UIImageView alloc in