以编程方式将图像位置放在按钮顶部

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式将图像位置放在按钮顶部相关的知识,希望对你有一定的参考价值。

我有一个按钮,我需要显示一个图像视图,我在下面的按钮动作中做了

    let imageName = "pointed_image.png"
    let image = UIImage(named: imageName)
    let imageView = UIImageView(image: image!)
    self.addSubview(imageView)

现在我想将该图像放在按钮顶部,使图像的底部中心正好位于按钮的顶部中心。 (想象一下标注视图如何在地图中显示引脚是位置(我的方案中的按钮)和标注警报是位置的“星巴克标注”(我的方案中的图像) - like this

请咨询如何修改以下代码以满足要求

    //Build image view
    let imageName = "pointed_image.png"
    let image = UIImage(named: imageName)
    let imageView = UIImageView(image: image!)

    //Get Button frame
    let btnFrame = self.infoButton.frame

    //position image on top of buttom
    // CODE TO MODIFY BELOW
    var imgFrame: CGRect = imageView.frame
    imgFrame.origin.x = btnFrame.origin.x + 10
    imgFrame.origin.y = btnFrame.origin.y - 10
    imageView.frame = imgFrame
    self.addSubview(imageView)
答案

我会使用imageViewcenter属性来正确放置它:

                           // aligned by centers in x axis
imageView.center = CGPoint(x: self.infoButton.center.x, 
                           // in y axis, using buttons origin and imageView's height placed right on top of the button
                           y: self.infoButton.frame.origin.y - (imageView.bounds.height / 2))

以上是关于以编程方式将图像位置放在按钮顶部的主要内容,如果未能解决你的问题,请参考以下文章

我如何在iOS上以编程方式为图像着色?

图像顶部的Android按钮不起作用

以编程方式添加前导/顶部约束

在不使用绝对位置、顶部和左侧的情况下将按钮置于图像中心的替代方法

Android View在没有XML的情况下对齐底部(以编程方式)

以编程方式将位置分配给android中的按钮