iOS中的自定义UIButton,文本顶部居中的图像

时间:2016-08-03 19:11:19

标签: ios objective-c uibutton interface-builder

我正在尝试在界面构建器中创建这样的按钮。

enter image description here

我使用this SO question作为参考,但我无法让图像位于文本顶部。

我只能获得偏离中心的文字和图像。

enter image description here

以下是一些设置:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您尝试在同一视图(UIButton视图)上使用图像和标签并定位它们,这不是执行此类任务的最佳方式。

您无法在界面构建器中的UIButton上添加子类。

我建议你改为创建一个UIView,然后单独添加一个UIImageView和设置图像,一个UILabel添加"设置":

enter image description here

之后,您可以添加TapGesturRecognizer,以便在点击查看按钮时通知您:

func tapSetup() {
        let tapOnMyViewButton = UITapGestureRecognizer(target: self, action: #selector(ViewController.didTapOnMyViewButton))
        self.byViewBtn.addGestureRecognizer(tapOnMyViewButton)
    }

    func didTapOnMyViewButton() {
        //Your logic
    }

答案 1 :(得分:1)

我经常在这种情况下使用的替代方法是在Interface Builder中创建UIView并将其类更改为UIControl。然后,你可以添加尽可能多的UIImageViews,UILabels等等,因为你喜欢&使用AutoLayout将所有内容定位为更多" hacky"内容插入。

UIButton是UIControl的子类,您可能正在寻找的所有功能也可能是UIControl的一部分,特别是-addTarget:action:forControlEvents方法。