【问题标题】:Place image position on top of button programatically以编程方式将图像位置放在按钮顶部
【发布时间】:2023-03-02 22:00:01
【问题描述】:

我有一个点击按钮,我需要在按钮操作中显示一个图像视图,如下所示

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

现在我想将该图像定位在按钮的顶部,使图像的底部中心正好位于按钮的顶部中心。 (想象一下标注视图如何在地图中显示,其中 pin 是位置(我的场景中的按钮),标注警报是位置的“星巴克标注”(我的场景中的图像) -

请建议我如何修改以下代码以满足要求

    //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)

【问题讨论】:

  • 我建议使用自动布局。您是否也在应用程序的其余部分计算帧?
  • 我需要在我的代码中的不同位置渲染这个图像视图。所以我想以编程方式在按钮顶部的图像位置执行此操作

标签: ios swift uibutton uiimageview position


【解决方案1】:

我会使用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))

【讨论】:

  • 嗨,米兰:这行得通,但我的 imageView 放在其他视图后面。我试图把它放在前面,但它们都没有工作。有什么建议吗?
  • @Ashh 好吧,这取决于您将 imageView 放在哪里以及您的视图层次结构是什么......我对其中任何一个都不了解
  • @Ashh 你又错过了 :)
猜你喜欢
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2015-10-26
  • 2013-02-28
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多