在Obj-C
imageView.contentMode = UIViewContentModeScaleAspectFill;
会设置contentMode。
为什么
imageView.contentMode = UIViewContentModeScaleAspectFill
在Swift中不起作用?
答案 0 :(得分:76)
有点令人困惑的是,Swift删除了ObjC枚举值的前缀:
imageView.contentMode = .scaleAspectFill
这是因为Swift已经知道正在使用什么枚举类型。或者,您也可以指定枚举:
imageView.contentMode = UIViewContentMode.scaleAspectFill
注意:在版本3之前的Swift版本中," scaleAspectFill"将需要资本化。
答案 1 :(得分:1)
在swift语言中,我们可以设置UIImage视图的内容模式,如
var newImgThumb : UIImageView
newImgThumb = UIImageView(frame:CGRectMake(0, 0, 100, 70))
newImgThumb.contentMode = .ScaleAspectFit
答案 2 :(得分:1)
<强> tldr; 强>
请参阅底部的Swift 3的代码答案。
注意 - 如果需要更多信息,请发表评论。
请查看以下较长的答案,其中包括如何使用该解决方案设置Storyboard或Xib / Nib文件中的所有其他属性。
其他答案没有错,但我想分享如何在Interface Builder中完成对象的设置值。我知道OP要求代码,这个例子只是为了完整而共享。当然,如果想要动画属性更改或需要代码版本,那么其他答案将继续适用。
在Interface Builder中
NB - 探索基础类型属性的简单方法是在源代码编辑器中单击Cmd +单击属性,然后单击Cmd +单击该属性的类型。
这是一个简单的例子,我为UIButton设置了一些属性,其中包含一个UIImageView作为其子视图之一。该示例显示了如何在顶部对象(UIButton)和子对象(UIImageView)上设置属性。
如果选择了imageView,则只需将用户定义的运行时属性设置为Number类型的contentMode以及您想要的任何值。这是一个很好的方法,因为它适用于Objc和Swift。
最棒的是,您可以使用相同的方法捕获Interface Builder中出现的任何内容的许多其他静态属性值。
Documented values for the UIViewContentMode enum
BTW - Swift 3将枚举值更改为以小写字母开头,以便以下内容适用于Swift 3:
imageView.contentMode = .scaleAspectFill
答案 3 :(得分:1)
在Swift 4中是
imageView.contentMode = UIView.ContentMode.scaleAspectFit
答案 4 :(得分:-1)
在Swift语言中,我们可以在textField中设置imageView,如下所示。
auto w
为视图提供颜色&amp; imageView这样您就可以在textField中检查添加的imageView位置
#include <Eigen/Eigen>
#include <iostream>
using namespace Eigen;
template<typename T>
using Arr = Array<T, Dynamic, 1>;
template<typename T>
using Arr2 = Array<T, Dynamic, Dynamic>;
int main() {
Arr<double> v = Arr<double>::LinSpaced(16, 0, 15);
auto w = Map<Arr2<double>>(v.data(), 4, 4).transpose();
std::cout << w << std::endl;
return 0;
}