你好我已经在我的静态TableView上动态创建了按钮
override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height))
let button = UIButton(type: UIButtonType.System) as UIButton
button.frame = CGRectMake(0, 0, 414, 65)
button.setTitle(buttonTitle, forState: UIControlState.Normal)
button.addTarget(self, action:buttonAction, forControlEvents: UIControlEvents.TouchUpInside)
button.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal)
button.titleLabel?.font = UIFont(name: Variables.MONTESERRAT_REGULAR, size: 20.0)
button.backgroundColor = UIColor().blueColor() //top
footerView.addSubview(button!)
return footerView
}
我想在单击按钮时在按钮顶部显示微调器。我知道如何制作点击功能或如何创建微调器。我只是不知道如何将微调器放在按钮顶部代替标题,这样当用户单击按钮时,标题隐藏和微调器移动到标题位置。我希望你明白我在说什么
答案 0 :(得分:2)
UIActivityIndicatorView *myspinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[myspinner setCenter:button.center];
[button addSubview:myspinner];
答案 1 :(得分:2)
这是我的快速版本
let loginSpinner: UIActivityIndicatorView = {
let loginSpinner = UIActivityIndicatorView(activityIndicatorStyle: .white)
loginSpinner.translatesAutoresizingMaskIntoConstraints = false
loginSpinner.hidesWhenStopped = true
return loginSpinner
}()
然后在我的viewDidLoad
函数中:
loginButton.addSubview(loginSpinner)
loginSpinner.centerXAnchor.constraint(equalTo: loginButton.centerXAnchor).isActive = true
loginSpinner.centerYAnchor.constraint(equalTo: loginButton.centerYAnchor).isActive = true
最后在需要的地方调用loginSpinner.startAnimating()
和loginSpinner.stopAnimating()
函数。
注意:在开始和停止动画设置时,我也禁用了按钮,因此取消设置了禁用按钮的标题,以便微调器替换标题loginButton.setTitle("", for: .disabled) // clear the title when it is disabled to just show the spinner
答案 2 :(得分:1)
UIActivityIndicatorView
),也使其自动隐藏(setHidesWhenStopped:
)addSubview
)setCenter:
)setTitle:forControlState:
)并运行微调器(startAnimating
)答案 3 :(得分:0)
以下是我通常的做法,并且您可以利用一些不同的行为:
let spinner = UIActivityIndicatorView(activityIndicatorStyle: .White)
spinner.frame = CGRect(x: -20.0, y: 6.0, width: 20.0, height: 20.0) // (or wherever you want it in the button)
spinner.startAnimating()
spinner.alpha = 0.0
button.addSubview(spinner)
您可以相应地更改Alpha。或者使用隐藏属性,停止/开始制作动画等。