Ios 如何使UIButton在按下时收缩为UIActivityIndicator?
我试图创建一个UIButton,当点击它时,它会缩小为一个活动指示器。我所指的UIButton被命名为Request Ride。我已经设置了大部分代码,但由于某种原因,按钮不会收缩,指示器也不会显示?我将附加应用程序的图片和我的代码 //我的应用程序 //我需要的最终结果 //主情节提要 //HomeVCIos 如何使UIButton在按下时收缩为UIActivityIndicator?,ios,swift,uibutton,uiactivityindicatorview,Ios,Swift,Uibutton,Uiactivityindicatorview,我试图创建一个UIButton,当点击它时,它会缩小为一个活动指示器。我所指的UIButton被命名为Request Ride。我已经设置了大部分代码,但由于某种原因,按钮不会收缩,指示器也不会显示?我将附加应用程序的图片和我的代码 //我的应用程序 //我需要的最终结果 //主情节提要 //HomeVC @IBAction func actionBtnWasPressed(_ sender: Any) { actionBtn.animateButton(shouldLo
@IBAction func actionBtnWasPressed(_ sender: Any) {
actionBtn.animateButton(shouldLoad: true, withMessage: nil)
}
//圆形阴影按钮
class RoundedShadowButton: UIButton {
// Variables
var originalSize: CGRect?
func setupView() {
originalSize = self.frame
self.layer.cornerRadius = 5.0
self.layer.shadowRadius = 10.0
self.layer.shadowColor = UIColor.darkGray.cgColor
self.layer.shadowOpacity = 0.3
self.layer.shadowOffset = CGSize.zero
}
override func awakeFromNib() {
setupView()
}
func animateButton(shouldLoad: Bool, withMessage message: String?) {
let spinner = UIActivityIndicatorView()
spinner.style = .large
spinner.color = UIColor.darkGray
spinner.alpha = 0.0
spinner.hidesWhenStopped = true
spinner.tag = 21
if shouldLoad {
self.addSubview(spinner)
self.setTitle("", for: .normal)
UIView.animate(withDuration: 0.2, animations: {
self.layer.cornerRadius = self.frame.height / 2
self.frame = CGRect(x: self.frame.midX - (self.frame.height / 2), y: self.frame.origin.y, width: self.frame.height, height: self.frame.height)
}) { (finished) in
if finished == true {
spinner.startAnimating()
spinner.center = CGPoint(x: self.bounds.width / 2 + 1, y: self.bounds.width / 2 + 1)
UIView.animate(withDuration: 0.2) {
spinner.alpha = 1.0
}
}
}
self.isUserInteractionEnabled = false
} else {
self.isUserInteractionEnabled = true
for subview in self.subviews {
if subview.tag == 21 {
subview.removeFromSuperview()
}
}
UIView.animate(withDuration: 0.2) {
self.layer.cornerRadius = 5.0
self.frame = self.originalSize!
self.setTitle(message, for: .normal)
}
}
}
}
一个明显的事实是,这条线是完全错误的:
spinner.center = CGPoint(x: self.frame.width / 2 + 1, y: self.frame.width / 2 + 1)
您未正确放置微调器。如果活动视图是按钮的子视图,则需要将其居中于按钮边界的中间,而不是其框架
我能够得到一种有点像你所描述的效果:
因此,如果你的值正确,这应该是可能的。发布代码而不是图像。@MojtabaHosseini我编辑了这篇文章以添加我的代码:)我如何着手解决这个问题?我理解,但这是我第一次做活动指示程序添加“屏幕广播”显示一个人可能可以做你想做的事情。K我将我的边界添加到微调器中心,接下来需要修复什么?