【问题标题】:UIImageView completely wrong position in UIViewUIImageView 在 UIView 中的位置完全错误
【发布时间】:2013-11-12 21:56:12
【问题描述】:

我正在尝试将 UIImageView 添加到我创建的 UIView 中。 但是,即使我将帧设置为相等,图像在 UIView 内的位置也太低了。 UIView 称为 photoView,这是我所做的:

UIImageView *imgV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image1.JPG"]];
imgV.frame = self.photoView.frame;
[self.photoView addSubview:imgV];

您可以在此处查看结果(以及 photoView 在情节提要中的位置):

我不知道如何解决这个问题,添加

imgV.center = self.photoView.center;
imgV.contentMode = UIViewContentModeScaleToFill;

也无济于事。

【问题讨论】:

  • 试试imgV.frame = self.photoView.bounds;。
  • 为什么不将 UIImageView 添加到您的情节提要中,而不是在运行时创建一个?您始终可以在运行时设置图像属性,而无需创建新的 UIImageView。
  • 谢谢,这比我刚刚找到的解决方案更优雅(看起来)!
  • @lintmachine 那是因为我有不同数量的 UIImageViews,这取决于在以前的 ViewController 中单击了哪个按钮,所以我必须以编程方式添加。

标签: ios objective-c uiview uiimageview


【解决方案1】:

试试这个:

imgV.frame = self.photoView.bounds;

而不是这个:

imgV.frame = self.photoView.frame;

【讨论】:

    【解决方案2】:

    没关系,我找到了答案,但我会把它留在这里,以防其他人有这个问题。

    错误在于框架和边界之间的差异。 This is where I found my answer.

    我的解决方案是这样的:

    [imgV setFrame:CGRectInset(self.photoView.bounds, 0, 0)];
    

    【讨论】:

    • 那是矫枉过正,因为你没有插图。按照我在评论中的建议做:imvv.frame = self.photoView.bounds;.
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多