绘制后,ContentMode在uiimageview中更改

时间:2017-04-13 17:06:08

标签: swift uiimageview core-graphics

我一直关注Ray Wenderlics关于如何创建基本绘图应用程序的教程。

除了在uiimageview上绘制内容模式更改时,我已经完美地工作了。

我已将它设置为storyFill在故事板中并应用了图像

我认为问题出在我的触摸结束方法

 for i in $( cat $SQL_SPOOL_LOG_DIR/pdb_lists.log | sed "s/,/ /g" | sed "s/'/ /g")
        do
 PDB_TE_STATUS=$ORACLE_HOME/bin/sqlplus '/as sysdba' << EOF 
            whenever sqlerror exit failure
            connect / as sysdba
            set head off
            set pagesize 0
            set linesize 145
            set feedback off
            alter session set container=$i;
    show con_name;
            spool $SQL_SPOOL_LOG_DIR/pdb_te_enable_status.log
            select status from v\encryption_wallet;
            spool off
 EOF
 CDB_CREATOR_PDB=$ORACLE_HOME/bin/sqlplus '/as sysdba' << EOF 
            whenever sqlerror exit failure
            connect / as sysdba
            set head off
            set pagesize 0
            set linesize 145
            set feedback off
            alter session set container=$i;
    show con_name;
            spool $SQL_SPOOL_LOG_DIR/pdb_cdb_creator_pdb_status.log
            select distinct CREATOR_PDBNAME from v\$encryption_keys where CREATOR_PDBNAME not like 'CDB$ROOT%' and KEY_ID is not null;
            spool off
  EOF
  done

它将内容模式更改为scaleToFill或Scale to fit?

有人知道我如何改变这个吗?

问候

托马斯

更新

感谢马特的指示

我添加了以下代码

    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


}

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

1 个答案:

答案 0 :(得分:0)

图像视图的内容模式不会改变。 (您可以轻松地对其进行测试,只需检查其contentMode,这在代码中的任何位置都不会发生。)

问题在于你的绘画方式!您正在将图像mainImageView.image绘制到矩形CGRect(x: 0, y: 0, width: mainImageView.frame.size.width, height: mainImageView.frame.size.height)中。这会拉伸图像以恰好适合那个矩形 - 导致您抱怨的拉伸行为。

换句话说,正在说&#34;缩放此图片以填充这个矩形&#34;,而这正是发生的事情。