ios - UIButton 没有设置居中

标签 ios objective-c uibutton

我在 Storyboard上手动添加了一个按钮。我想当屏幕加载时,此按钮将其中心设置为我给它的坐标

-(void)viewWillLayoutSubviews{
    NSLog(@"Will Layout");
    CGPoint buttonPoint;
    buttonPoint.y = self.view.frame.size.height - 50;
    buttonPoint.x = self.view.frame.size.width /2;

    [menuButton setCenter:buttonPoint];
}

但是没有任何变化,按钮仍然停留在我第一次拖动它的地方。 我做错了什么?

最佳答案

对于现代的基于 AutoLayout 和旧的基于 Springs&Struts 的布局管理方法来说,这都非常简单。

自动布局

您只需设置两个约束,使按钮保持在水平中间和垂直中间减去 50 点。 enter image description here

Spring 和支柱

您将通过在大小检查器中正确设置自动调整大小掩码来确保按钮设置在中心。然后在代码中,在 View Controller 的 viewDidLoad 方法中,您将修复 50 点偏移量。

(有些人可能会建议使用 viewWillLayoutSubviews,但我们现在不要让它复杂化。)

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.button.frame = CGRectMake(self.button.frame.origin.x,
                                   self.button.frame.origin.y - 50,
                                   self.button.frame.size.width,
                                   self.button.frame.size.height);

/// other code....
}

enter image description here

关于ios - UIButton 没有设置居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28771986/

相关文章:

ios - 将 GPUImage 过滤器子类移植到 Swift

objective-c - 比较两个 NSDate 对象不起作用

ios - 向下/向上滚动时淡出/显示 UIButton

swift - tvOS:间歇性调用 pressesEnded

objective-c - 从内存中删除 View Controller ?

objective-c - ios 中的属性保留

ios - 在 AngularJS 应用程序中使用 html input type=search 在 iOS 键盘上显示搜索按钮

ios - Xcode 访问用户定义的运行时属性中的属性

objective-c - xcode "_OBJC_CLASS_$_Name",在....中引用错误,4天,无法弄清楚

ios - 在iOS中,我们可以设置UIButton的字体和标题并获取其宽度吗?