问题标签 [contentmode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
layout - UIImageView 不服从它的内容模式
我正在设计一个 iOS 应用程序,其中有一个视图控制器,底部有一个嵌入式视图控制器,顶部有一个图像。但是,我在使用图像视图时遇到了问题。没有图像视图,一切正常。当我放置图像视图时,图像视图不适合图像。以下是它在界面构建器中的外观(设置为 Scale to Fill):
当我在我的 iPod Touch (iOS 6) 中运行它时,它看起来是这样的:
图像的纵横比与 Interface Builder 中显示的不同。然后,我尝试将图像模式设置为 Aspect Fill(这实际上是我想要的):
这正是我真正想要的,但是当我运行它时,图像几乎填满了整个屏幕:
注意我的朋友选择器视图控制器是如何留在图像视图后面的。整个视图控制器的布局是正确的(嵌入式视图控制器位置正确,注意最后一张截图中图片结束的地方,它从J开始,意思是一直到图片后面的顶部),它只是占用太多空间的图像视图。我尝试了框架矩形的不同排列,并尝试切换 iOS 6 的自动布局。两者都没有帮助。我是否遗漏了一个明显的观点,或者它是 iOS 布局系统的一个错误。(可能是第二个,因为所见即所得在 Interface Builder 和实际应用程序之间失败)是否有任何解决方法(除了在 Photoshop 中以我想要的确切尺寸裁剪图像部分)?
谢谢,
能。
更新:我目前发现的一种解决方法是将图像视图放在另一个视图中,并设置父视图的剪辑子视图属性勾选。但是图像视图本身的行为仍然不正确,尽管这目前解决了我的问题,但它不是一个真正的解决方案,所以欢迎任何解决方案的答案。
ios - 打印捕获的屏幕截图 - 图像模糊
我有一些代码可以打印屏幕截图。问题是,默认操作不是“适合”图像,而是用图像“填充”纸张,这会导致拉伸。如果是 iphone 的打印屏幕(例如非视网膜),它看起来很糟糕。
我找不到属性或任何方法来打印图像而不拉伸它,有人可以帮忙吗?
ios - iOS:使用 UIViewContentModeScaleAspectFill 时如何对齐(左/右) UIImageView?
我正在使用 UIImageView 的 contentMode 属性。
当我将它设置为 UIViewContentModeScaleAspectFill 时,图像会缩放以适合屏幕。它居中。所以图片的左右(或上下,取决于屏幕方向)部分被剪裁。
我希望有相同的行为,但不居中。是否可以仅在右侧(或左侧)裁剪图像?(再次取决于方向的顶部或底部)?
谢谢
ios - 如何对 UIView 进行自定义布局,使其适用于 iPhone 5 屏幕尺寸和常规屏幕尺寸
这是期望的结果。蓝色区域是感兴趣的 UIView。UIView 不是 UIImageView。
我尝试了各种带有自动调整大小的蒙版的安排,但无济于事
ios - 在自定义单元格中创建 UIImageView 会在使用 ScaleAspectFit 时从旧图像中留下工件
我有一个带有 CustomCell 的表,在绘制单元格时,我创建了一个 UIImageView 并将其作为子视图添加到 scrollView。该图像还将其 contentMode 设置为 UIViewContentModeScaleAspectFit。问题是当绘制下一个单元格时,如果图像小于前一个图像,那么前一个图像的边界仍然存在。
代码是这样的;
我现在想我应该从图像中收集尺寸并将 CGRectMake 设置为该大小而不是使用 contentMode 但如果有一个简单的修复......
将图像设置为 nil 不起作用,另一个想法是先加载空白图像(这很讨厌)。任何想法,将不胜感激。
编辑
这是细胞方法
简而言之,它会检查一个 3D 数组以查看该单元格中有多少图像,如果有 5 个,则每次将它们添加到视图时都会创建 UIImageView 5 次。下一个单元格是下一个图像列表,可能只有 3 英寸,依此类推。
picXCount 跟踪在滚动视图 (newsItemImages) 中水平绘制图像的位置。内容也被设置为滚动。
ios - iOS UIScrollView 大小子视图只有一次
我有一个图像作为 UIScrollView 的子视图。我希望图像最初使用 UIView 的 autoResizingMask 和 contentMode (UIViewContentModeAspectFit) 属性适合屏幕的边界。当滚动视图的框架更改为键盘腾出空间时,我不希望子图像视图缩小以适应较小的框架。我无法在创建滚动视图时禁用它的 autoResizeSubviews,因为子视图必须在开始时重新调整大小一次。现在我可以在键盘出现时关闭子视图调整大小,并在它消失时重新启用它。这似乎工作正常,但似乎很hackish。这是一种可以接受的方法还是有更好的解决方案?谢谢。
ios - UIImageView 设置为 imageWithData 忽略 contentMode
在我的自定义 tableViewCell 中,我有一个填充整个单元格的 imageView(不是 tableViewCell 的默认 imageView)。它是在 IB 中(和通过代码)使用 contentMode 设置的UIViewContentModeAspectFill
,并且它剪辑到边界。每当我将 imageView 的图像更改为加载的图像时[UIImage imageNamed:...]
,它都会根据需要调整大小并适合 imageView。但是,当使用 加载图像集时[UIImage imageWithData:...]
,图像已设置,但未调整大小。
使用数据本身加载图像的代码在后台线程中运行,如下所示:
我尝试在主线程中设置图像layoutSubviews
,但它总是产生相同的结果——它不会调整大小以填充 imageView。我将图像 (JPG) 添加到应用程序包中,并使用 以编程方式设置它[UIImage imageNamed:...]
,它可以工作,但应用程序必须从 URL 获取数据。
我还尝试使用 UIImageView+AFNetworking 类来设置图像异步而不是创建自己的线程,但这也不起作用。
为什么从数据加载图像时不尊重 UIImageView 的 contentMode?任何帮助表示赞赏。JPEG 和 PNG 都不起作用。
ios - 如何将自动布局约束与 UIView 的 contentMode 属性结合起来
我有一个UIImageView
配置了自动布局的对象。我创建了约束,以便视图与其父视图保持恒定距离。在视觉格式中,它会像:
但我也想保持底层图像的纵横比,所以我分配UIViewContentModeScaleAspectFit
了contentMode
.
cornerRadius
在我设置关联的值之前,我认为一切正常CALayer
:
现在,当调整图像视图的大小时,例如由于方向的变化,圆角会丢失,具体取决于视图获得的新大小。原因是这cornerRadius
适用于UIImageView
(下面的虚线框),但由于基础图像也被调整大小以尊重contentMode
(下面的星号框),圆角不再可见:
有没有办法防止这种行为?
iphone - 调整 UIImage 内容的大小
请检查所附图像以简要了解问题。
请注意 X 字符和圆圈字符的大小。两个字符的图像大小相同,但由于第二个字符的形状,它看起来有点小。我知道我可以为第二个角色使用另一个图像,但它会破坏角色的形状。那么任何人都可以建议我某种方式,通过它我可以重绘 UIImage 的内容以在两个图像视图中相等。
ios - iOS >> UITableViewCell ImageView 属性 >> ContentMode 没有任何作用
在许多情况下,使用 4 种 UITableViewCell 的“现成”样式之一就足以满足我的需要,除了一件“小”烦人的事情:cell.imageView.contentMode 属性始终设置为 Scale to Fill。如果图像具有不同的比例,则会导致单元格标签每行被推送不同的 x。看起来很丑...
如果我尝试在代码中修复它,比如说在 cellForRowAtIndexPath 方法中,通过寻址属性并将其分配给 Aspect Fit,我不会收到任何警告或错误,但它什么也不做 - 即它仍然使用 Scale to Fill。
这意味着,如果我有一个应用程序,我不负责表格视图中显示的所有图像,因此无法将它们切割成相同的大小 - 例如,如果我希望允许用户从库中选择图像或下载等... - 我必须使用自定义单元格,即使它所拥有的只是一个图像和一个标签。
有谁知道如何在不继承 UITableViewCell 的情况下使用默认样式来解决这个问题?