重新定位屏幕框外的视图

时间:2018-03-09 08:20:11

标签: ios swift frame cgrect bounds

我在UIView中有一个imageView,当点击该按钮时,它会显示在按钮顶部。按钮的位置是动态的。

如果按钮位于屏幕的最右侧,点击该按钮,显示的一半视图将离开屏幕(即只显示一半)

在下面的代码中,我将视图的帧设置为图像宽度及其高度,imageView的位置是(图像的中心位于按钮的顶部中心)

请建议我如何重新定位视图将始终在边界内。下面是我用于在按钮

上显示我的自定义视图的代码
       //calculate frame for view
        let imageHeight = myImage.size.height
        let imageWidth = myImage.size.width
        let imageX = myButton.minX - 
           ((myView.myImageView.bounds.width)/2) + 15
        let imageY = currentCellRect.minY - 
            (myView.myImageView.bounds.height) + 15
        let imageFrame = CGRect(x: imageX, y: imageY, width: 
             imageWidth, height: imageHeight)

        //Assign calculated from to the tool tip view
        toolTipView.frame = imageFrame

1 个答案:

答案 0 :(得分:0)

在计算imageWidthimageX后,您可以进行如下检查:

[...]
var imageX = myButton.minX - 
           ((myView.myImageView.bounds.width)/2) + 15
imageX = min(imageX, view.frame.width - imageWidth)
[...]

请注意,我将imageXlet更改为var