如何获得非矩形按钮?

时间:2018-11-30 12:59:46

标签: ios swift uiimage

如何获得非矩形按钮?

我有一个戴着面具的UIImage。如何在没有透明颜色的情况下对此图像设置按钮的形状。

enter image description here

1 个答案:

答案 0 :(得分:3)

  

我有一个带遮罩的UIImage。如何在没有透明颜色的情况下对此图像设置按钮的形状。

按钮是控件,控件是视图,视图本质上是矩形,因此按钮在视图层次结构中将始终占据矩形空间。但是,视图的可见部分(以及按钮)可以是您想要的任何内容...视图可以具有透明的背景,并且可以根据自己的喜好进行绘制。视图也可以选择假装没有发生触摸事件,从而有可能使视图似乎具有非矩形的形状,以实现传递触摸的目的。您可以通过覆盖hitTest(_:with:)来做到这一点。

此外,请意识到您并不需​​要总是使用按钮来与屏幕上的对象进行交互。例如,如果您拥有房屋的图像,并且希望用户能够点按房屋的不同部分以更改其颜色或纹理,则可以在知道房屋不同部分位置的视图中显示房屋在图像中。您可以使用手势识别器或常规的触摸处理机制来让用户与不同区域进行交互,这些区域可以是您喜欢的任何形状。