UIButton: Need a circle hit area

2020-06-28 01:53发布

问题:

Ok I have 6 custom UIButtons. Their normal state image are all circles images. They are all spaced out equally but all the circles touch each other.

The problem with the custom UIbutton (which has a circle image on it), is that the hit area of that button is square, and the corners of this square overlaps the hitarea of the other custom button's hitarea.

How do i make the hit area of a UIbutton whos normal state has a circle image, be only clickable on that circle only, rather than the normal square hit area?!

I hope that someone can find a way for me to solve this problem that i currently am having!

Thanks in advance

Pavan

回答1:

If the square area of a "circle" is clicked on, you should then check if the distance between the center of the circle and the coordinates of the click are less than the radius of the circle. If not, then the "hit" can be ignored.



回答2:

Thanks for the input demi, I just basically put hidden buttons on top of the images. They weren't really circles, they were more complex shapes; hence the reason I didn't bother about the maths, so I just placed hidden buttons on top of the images themselves and make those hit areas and cover appropriately until I get the desired hit area coverage I need.

Although not very neat, it works well! :D

Thanks once again for the swift reply demi.



回答3:

OBShapedButton is an awesome project that will give you a button that will only respond to taps that are in the images area. I've messed with a few projects that say they do the same thing, and this one is the best I've seen so far.