Ios 在Swift中以编程方式定位对象

Ios 在Swift中以编程方式定位对象,ios,xcode,swift,Ios,Xcode,Swift,我想以编程方式设置对象的位置。为此,我愿意: youtubeIco.frame.origin.y = 100 但什么都没有。它根本不会改变坐标。有什么问题 第二个问题: 当我在webView的XCode约束中设置时(例如:10(上、左、右、下),它消失了。但是当我没有为它设置约束时,它出现了。问题是什么 我想要这样: 您需要将全帧设置为 youtubeIco.frame = CGRectMake(youtubeIco.frame.origin.x, 100,youtubeIco.frame.s

我想以编程方式设置对象的位置。为此,我愿意:

youtubeIco.frame.origin.y = 100
但什么都没有。它根本不会改变坐标。有什么问题

第二个问题:

当我在webView的XCode约束中设置时(例如:10(上、左、右、下),它消失了。但是当我没有为它设置约束时,它出现了。问题是什么

我想要这样:


您需要将全帧设置为

youtubeIco.frame = CGRectMake(youtubeIco.frame.origin.x, 100,youtubeIco.frame.size.width,youtubeIco.frame.size.height)

只有y轴更改不会对其产生任何影响,您必须为此提供全帧。或者设置中心或偏移。

您需要设置全帧,如

youtubeIco.frame = CGRectMake(youtubeIco.frame.origin.x, 100,youtubeIco.frame.size.width,youtubeIco.frame.size.height)

只有y轴更改不会对其产生任何影响,您必须为此提供完整的帧。或者设置中心或偏移。

使用AutoLayout,您不能直接更改视图的帧。约束会将对象放回原来的位置


相反,您应该添加用于定位视图的约束,并将IBoutlet添加到这些约束中。然后您使用这些出口更改约束的常量值,约束将为您移动视图对象。(在此上下文中,您可以在屏幕上显示的任何内容都是视图{UIView的后代},包括按钮。)

使用AutoLayout,您无法直接更改视图的边框。该约束会将对象放回原来的位置


相反,您应该添加用于定位视图的约束,并将IBoutlet添加到这些约束中。然后您使用这些出口更改约束的常量值,约束将为您移动视图对象。(在此上下文中,您可以在屏幕上显示的任何内容都是视图{UIView的后代},包括按钮。)

尝试删除约束,如果解决,则添加约束,除非顶部对齐,否则y位置不会改变。必须存在约束问题,否则它会工作,如果可能,请添加更多代码,以便我们可以解决。我在webView上使用它,它会工作(您的代码),但在按钮上-否。我删除了所有it约束,再次为空。您将youTubeIco添加到了什么视图?位置相对于youTubeIco的父视图。您可以使用要更改y位置的按钮放置故事板的屏幕快照。尝试删除约束,如果解决,则添加约束,除非顶部对齐,否则y位置将为not更改。必须有约束问题,否则它会工作,如果可能的话,放更多的代码以便我们可以解决。我在webView上使用它,它会工作(您的代码),但在按钮上-否。我删除了所有的it约束,同样没有。您将youTubeIco添加到了什么视图?位置相对于youTubeIco的父视图。您可以使用要更改y位置的按钮放置故事板的屏幕截图。您不应该操纵框架,而应该操纵约束。您可以为约束使其更容易而不是操纵框架,您应该操纵约束。您可以为约束创建IBOutlet,使其更容易。此方法非常有用。谢谢此方法非常有用。谢谢