首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制后uiimageview的ContentMode变化

绘制后uiimageview的ContentMode变化
EN

Stack Overflow用户
提问于 2017-04-13 17:06:08
回答 1查看 578关注 0票数 1

我一直遵循雷温德莱茨的教程,如何创建一个基本的绘图应用程序。

除了当我在uiimageview上绘制内容模式更改之外,我已经让它完美地工作了。

我已经在故事板中将它设置为aspectFill,并应用了一个图像

我想问题就在我的解决方法上

代码语言:javascript
复制
    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或缩放模式?

有人知道我是怎么改变这个的吗?

问候

托马斯

更新

谢谢马特的指导

我添加了以下代码

代码语言:javascript
复制
  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()

我认为我是在正确的轨道上,但图像现在调整为方面适合,而不是方面填充。

EN

回答 1

Stack Overflow用户

发布于 2017-04-13 17:14:30

图像视图的内容模式没有改变。(只需检查它的contentMode就可以很容易地进行测试,这在代码中任何地方都不会发生。)

问题是你画的方式!您正在将一个图像( mainImageView.image )绘制成一个新的CGRect(x: 0, y: 0, width: mainImageView.frame.size.width, height: mainImageView.frame.size.height)。这张照片正好符合你所抱怨的拉伸行为。

换句话说,你说的是“缩放这个图像来填充这个图”,这就是正在发生的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43398015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档