【问题标题】:Objective C setFrame not working for UIView [duplicate]Objective C setFrame不适用于UIView [重复]
【发布时间】:2016-05-11 14:05:44
【问题描述】:

我正在使用 setFrame 来更改视图的 X 位置。我的视图位于 UIViewController 之外,当我单击任何按钮时,它会根据按下的按钮进入 UIView。我不确定我做错了什么,但使用下面的代码,所有视图都不会移动,尽管我之前在以前的项目中使用过它,所以我无法理解为什么它现在不起作用。

按钮代码如下,谢谢!

- (IBAction)reviews {
    [self.descView setFrame:CGRectMake(-378, 278, 375, 334)];
    [self.reviewsView setFrame:CGRectMake(0, 278, 375, 334)];
    [self.avView setFrame:CGRectMake(-378, 278, 375, 334)];
    [self downloadreviews];

}

【问题讨论】:

  • 你使用自动布局/约束吗?
  • 是的,视图的自动布局已打开。
  • 如果使用自动布局,您需要使用约束而不是框架坐标进行操作
  • 这些视图是否受到限制?

标签: ios objective-c cgrect cgrectmake


【解决方案1】:

如果您使用 AutoLayout,则无法直接操作视图的框架。约束接管并将它们立即移回。

您需要设置约束,将出口连接到这些约束,然后更改约束上的常量值并调用 layoutIfNeeded 以获取约束来为您移动/调整视图大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多