- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在关注 Ray Wenderlics 关于如何创建基本绘图应用程序的教程。
除了在 uiimageview 上绘制内容模式更改时,我让它工作得很好。
我在 Storyboard 中将它设置为 aspectFill 并应用了图像
我认为问题出在我的 touches ended 方法上
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if !swiped {
// draw a single point
drawLineFrom(fromPoint: lastPoint, toPoint: lastPoint)
}
// Merge tempImageView into mainImageView
UIGraphicsBeginImageContext(mainImageView.frame.size)
mainImageView.image?.draw(in: CGRect(x: 0, y: 0, width: mainImageView.frame.size.width, height: mainImageView.frame.size.height), blendMode: CGBlendMode.normal, alpha: 1.0)
tempImageView.image?.draw(in: CGRect(x: 0, y: 0, width: mainImageView.frame.size.width, height: mainImageView.frame.size.height), blendMode: CGBlendMode.normal, alpha: opacity)
mainImageView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
tempImageView.image = nil
}
它将内容模式更改为 scaleToFill 或 Scale to fit?
有谁知道我如何更改它?
问候
托马斯
更新
感谢马特的指导
我添加了以下代码
let imageSize = AVMakeRect(aspectRatio: (mainImageView.image?.size)!, insideRect: mainImageView.frame)
mainImageView.image?.draw(in: CGRect(x: 0, y: 0, width: imageSize.width , height: imageSize.height), blendMode: CGBlendMode.normal, alpha: 1.0)
tempImageView.image?.draw(in: CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height), blendMode: CGBlendMode.normal, alpha: opacity)
mainImageView.image = UIGraphicsGetImageFromCurrentImageContext()
我认为我在正确的轨道上,但图像现在正在调整大小以适应纵横比而不是纵横比填充。
最佳答案
ImageView 的内容模式没有改变。 (您可以轻松地对其进行测试,只需检查其 contentMode
,这不会在您的代码中的任何地方发生。)
问题是你画的方式!您正在将图像 mainImageView.image
绘制到矩形 CGRect(x: 0, y: 0, width: mainImageView.frame.size.width, height: mainImageView.frame.size .高度)
。这会拉伸(stretch)图像以完全适合该矩形 - 导致您提示的拉伸(stretch)行为。
换句话说,您是在说“缩放此图像以填充此矩形”,而这正是正在发生的事情。
关于swift - 绘制后 uiimageview 中的 ContentMode 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43398015/
我正在尝试将 UINavigationBar 的背景设为图像,但该图像并不是栏的确切大小。由于某种原因,我似乎无法正确设置栏的 contentMode 。这是我的代码: override func v
我正在尝试将我的 UITableView 设置为较小的高度并设置了 contentMode,但是,我无法让它滚动……它只是减小了尺寸。我做错了什么? [self.tableView setConte
所以我有这个 UIImageView ,上面有一个图像。当我使用普通的 iPhone 显示屏时,它在 UIImageView 内完全按照预期显示 - 在 UIImageView 范围内,问题是当我使用
我正在绘制一堆 UIImageView (100x100) 作为菜单项。每个都有自己的图像,有些大于 100x100,有些更小。默认情况下,具有较大图像的 imageView 会按比例缩小以很好地适应
let assests : PHAsset = self.asset[indexPath.item] as! PHAsset PHImageManager.defaultManager().r
我正在尝试将 UIImageView 的图像属性设置为我正在使用 CoreImage 进行模糊处理的图像。该代码与未过滤的图像完美配合,但是当我将背景图像设置为过滤后的图像时,contentMode
我完全被这个尺寸错误难住了。我的 View 布局中有一个 UIImageView 和一个 UITableView。 UIImageView 在 IB 中设置为 Aspect Fit,当我使用 IB 设
我有一个大小为 366 x 375 的 UIImageView(由 NSLog 语句确认)和一个大小为 400 的 UIImage x 600(再次通过日志语句确认)。我已尝试设置 contentMo
我正在使用 AlamofireImage,我注意到它具有设置所需图像的内容类型的功能。但是,我看不到设置占位符图像本身的内容类型的可能性。 例如,现在在我的 cellForRow 方法中我正在做: l
我有以下代码,适用于旧版 IOS 应用程序,但现在在 xcode 9 中不再适用: 我得到的错误是: 'ContentMode' is not a member type of 'UIView' 代码
我正在使用 CIFilter 为图像添加滤镜。过滤图像后的结果图像大小如下:CGRectMake(10, 10, 70, 70)。我无法将生成的图像内容模式设置为 ScaleAspectFill。这是
我使用 [myButton setImage:forState:]; 为我的 UIButton 设置了一个 UIImage我使用 [[myButton imageView] setContentMod
在 Obj-C 中 imageView.contentMode = UIViewContentModeScaleAspectFill; 将设置 contentMode。 为什么 imageView.c
我对 UIImageView 显示图像的方式感到非常失望。 我有以下代码: UIImageView *imgview = [[UIImageView alloc] initWithFrame:CGRe
我有一个 Collection View 。我在 Collection View 的每个单元格上放置了一个 ImageView。然后我将 ImageView 的 contentMode 设置为 Sca
在照片框架中,我正在尝试查看使用 PHImageManager 中的 RequestImageFor Asset 方法的教程。 这是一段代码: let asset:PHAsset = self
我很难理解 UIViewContentModeScaleAspectFit 的工作原理。我正在开发应用程序,我希望图像应该以图像周围必须有空白区域的方式重新绘制,并且图像必须设置在 ImageView
当我将图像(通过 Storyboard )添加到按钮图像内容模式时不起作用。当我通过图像插入和另一台设备(iPad)上的标题插入修复它(iPhone)时,它失去预期比率?我该如何修复它?? 最佳答案
我正在尝试创建一个小示例来解释 UIImageView 的 contentMode (scaleAspectFill)。 一切都是编码的,没有使用 Storyboard。检查了很多有助于解释这一点的例
我一直在关注 Ray Wenderlics 关于如何创建基本绘图应用程序的教程。 除了在 uiimageview 上绘制内容模式更改时,我让它工作得很好。 我在 Storyboard 中将它设置为 a
我是一名优秀的程序员,十分优秀!