Ios 设置UIImageView的内容模式

Ios 设置UIImageView的内容模式,ios,swift,Ios,Swift,在Obj-C中 imageView.contentMode=UIViewContentModeScaleAspectFill 将设置contentMode 为什么 imageView.contentMode=UIViewContentModeScaleAspectFill 在Swift中不起作用?有点令人困惑,Swift删除了ObjC枚举值的前缀: imageView.contentMode = .scaleAspectFill 这是因为Swift已经知道正在使用的枚举类型。或者,也可以指定枚

在Obj-C中

imageView.contentMode=UIViewContentModeScaleAspectFill

将设置contentMode

为什么

imageView.contentMode=UIViewContentModeScaleAspectFill


在Swift中不起作用?

有点令人困惑,Swift删除了ObjC枚举值的前缀:

imageView.contentMode = .scaleAspectFill
这是因为Swift已经知道正在使用的枚举类型。或者,也可以指定枚举:

imageView.contentMode = UIViewContentMode.scaleAspectFill

注意:在Swift版本3之前的版本中,“ScaleSpectFill”需要大写。

在Swift语言中,我们可以设置UIImage视图的内容模式,如

var newImgThumb : UIImageView
newImgThumb = UIImageView(frame:CGRectMake(0, 0, 100, 70))
newImgThumb.contentMode = .ScaleAspectFit 

在Swift语言中,我们可以在文本字段中设置imageView,如下所示

let RightImageView = UIImageView()
RightImageView.image = image

let RightView = UIView()
RightView.addSubview(RightImageView)
RightView.frame = CGRectMake(0, 0, 30,30)
为视图和imageView指定颜色,以便您可以在文本字段中检查添加的imageView位置

RightView.backgroundColor = UIColor.redColor()
RightImageView.backgroundColor = UIColor.blueColor()

RightImageView.contentMode = UIViewContentMode.ScaleAspectFill

RightImageView.frame = CGRectMake(0, 0,30,30)

textFieldForCountry.rightView = RightView
tldr

请参见底部Swift 3的代码答案

注-如果需要更多信息,请发表评论

请查看下面较长的答案,其中包括如何使用解决方案设置故事板或Xib/Nib文件中的所有其他属性

其他答案并没有错,但我想分享如何在Interface Builder中设置对象的值。我知道OP需要代码,这个例子只是为了完整性而被分享。当然,如果一个人想要设置属性更改的动画,或者需要代码版本,那么其他答案仍然适用

在界面生成器中

  • 选择ImageView(或任何其他具有嵌入式 图像视图)
  • 检查要设置的属性的基本类型(对于contentMode,这是UIViewContentMode)*有关如何
  • 请注意可以分配给基类型的有效值的类型(在本例中) 案例内容模式值对应于一个数字)
  • 转到属性检查器,查看用户定义的运行时属性(参见图)
  • 添加类型为的用户定义属性 编号和要设置的属性名称(在本例中为 将是contentMode
  • 注意-探索底层属性类型的一种简单方法是在源代码编辑器中按住Cmd键并单击该属性,然后按住Cmd键并单击该属性的类型

    下面是一个简单的示例,我为UIButton设置了一些属性,其中包括UIImageView作为其子视图之一。该示例显示如何设置顶部对象(UIButton)和子对象(UIImageView)的属性

    如果选择了imageView,则只需将用户定义的运行时属性设置为类型为Number的contentMode以及您想要的任何值。这是一个很好的方法,因为它适用于Objc和Swift

    最棒的是,您可以使用相同的方法为Interface Builder中显示的任何内容捕获许多其他静态属性值

    顺便说一句-Swift 3将枚举值更改为以小写开头,以便以下内容在Swift 3中适用:

    imageView.contentMode = .scaleAspectFill
    
    在Swift 4中是

    imageView.contentMode=UIView.contentMode.ScaleSpectFit