使用Storyboard创建圆形UIImageView的问题[Xamarin]

时间:2016-01-15 20:21:48

标签: c# ios xamarin uikit uistoryboard

我面临一个奇怪的问题,我确信我会监督一些明显的事情: 我想得到一个像这样的圆形图像:

我执行以下操作来绕过UIImageView的角落:

        testImage.Layer.CornerRadius = testImage.Frame.Size.Height * 0.5f;
        testImage.ClipsToBounds = true;

在我的故事板中,ImageView左右限制为60,前92位,A​​spectRatio为1:1。

enter image description here

然而,当我运行应用程序时,我在iPhone 6plus上收到以下内容: enter image description here

我使用CornerRadius玩了一下,可以在iPhone 5上生成100个所需的圆圈,在iPhone 6上生成125个,在iPhone 6plus上生成150个。

当我从这样的代码生成所有内容时:

        var testImage = new UIImageView(new CoreGraphics.CGRect(0, 0, 150, 150));
        testImage.Image = UIImage.FromFile ("kitten.jpg");
        testImage.Layer.CornerRadius = testImage.Frame.Size.Height * 0.5f;
        testImage.ClipsToBounds = true;
        View.Add (testImage);

我得到了预期的结果: enter image description here

我在故事板上做错了吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我在Xcode中对此进行了双重检查,因此我将其作为答案:

在您的第一个例子中,您假设高度和宽度相等,因为宽高比设置为1:1;在第二个实例中,您实际上正在创建一个UIImageView,它将高度和宽度设置为相等的值。如果将“纵横比”约束的优先级设置为高于任何其他约束的“优先级”的数字,则应该得到一个圆圈。