How to get the exact point of objects in swift?

2019-06-13 15:39发布

问题:

I'm using a UIProgressView and want to stick a image subview to the progress % as in the image below:

I want to get the co-ordinate of the progress tint and red subview as in the figure to "stick" with the progress tint, whatever the progress will be..

回答1:

You can start by vertically centering the image view with the progress view using constraints or programmatically like below.

imageView.center.y = progressView.center.y

Then where ever you are updating the progress, after you can calculate the center x coordinate for the image view using the adjusted progress and width of the progress view.

imageView.center.x = progressView.progress * progressView.frame.width

Although you may need to add padding if the progress view's super view is not the same width.

OR

You could consider using a UISlider; it comes with a progress-bar-like track and a thumb slider that you can customise. This way, you can even have user interaction if need be - otherwise user interaction can be disabled and you can set the progress programmatically.