Ios UISplitViewController详细控制器上的Swift中心UIActivityIndicator视图
我在Ios UISplitViewController详细控制器上的Swift中心UIActivityIndicator视图,ios,swift,Ios,Swift,我在uiplitviewcontroller的详细视图中使用UIActivityIndicatorView,它不居中,更向右对齐,下面是我添加UIActivityIndicatorView的代码: indicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) as UIActivityIndicatorView //Set the activity indicato
uiplitviewcontroller
的详细视图中使用UIActivityIndicatorView
,它不居中,更向右对齐,下面是我添加UIActivityIndicatorView
的代码:
indicator = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) as UIActivityIndicatorView
//Set the activity indicator center
indicator.center = self.view.center
//Hide the indicator when its stopped.
indicator.hidesWhenStopped = true
//Set the style of the activity indicator
indicator.style = UIActivityIndicatorView.Style.white
//Set the background colour of the activity indicator
indicator.backgroundColor = UIColor(white: 0.0, alpha: 0.6)
//Make the activity indicator have rounded corners
indicator.layer.cornerRadius = 15
//Add activity indicator to view
self.view.addSubview(indicator)
//Start activity indicator
self.indicator.startAnimating()
为什么它不居中?这将居中我的UIActivityIndicator视图
override func viewDidLayoutSubviews() {
if(self.indicator != nil)
{
self.indicator.center = self.view.center
}
}
这集中了我的UIActivityIndicator视图
override func viewDidLayoutSubviews() {
if(self.indicator != nil)
{
self.indicator.center = self.view.center
}
}
应避免使用帧实例化
UIActivityIndicatorView
,而应使用此初始值设定项:
初始化(样式:UIActivityIndicatorView.style
)
如合同所述:
UIActivityIndicatorView
根据指定的样式调整返回实例的大小。您可以通过style
属性设置和检索活动指示器的样式
所以你应该这样做:
override func viewDidLoad(){
self.myActivityIndicatorView=UIActivityIndicatorView(样式:。白色)
}
覆盖viewDidLayoutSubviews(){
super.viewDidLayoutSubviews()
self.myActivityIndicatorView.center=self.view.center
}
您应该避免使用帧实例化UIActivityIndicatorView
,而是使用此初始值设定项:
初始化(样式:UIActivityIndicatorView.style
)
如合同所述:
UIActivityIndicatorView
根据指定的样式调整返回实例的大小。您可以通过style
属性设置和检索活动指示器的样式
所以你应该这样做:
override func viewDidLoad(){
self.myActivityIndicatorView=UIActivityIndicatorView(样式:。白色)
}
覆盖viewDidLayoutSubviews(){
super.viewDidLayoutSubviews()
self.myActivityIndicatorView.center=self.view.center
}
我在视图中尝试了您的代码,它将显示为func,并且可以正常工作。。。无论如何,如果您想使用其他方法,但保持圆角bg视图:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
myActivityIndicatorView = UIActivityIndicatorView(style: .white)
myActivityIndicatorView?.hidesWhenStopped = true
myActivityBGView = UIView.init(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
myActivityBGView?.backgroundColor = UIColor(white: 0.0, alpha: 0.6)
myActivityBGView?.layer.cornerRadius = 15
if let myActivityIndicatorView = myActivityIndicatorView,
let myActivityBGView = myActivityBGView {
myActivityBGView.addSubview(myActivityIndicatorView)
view.addSubview(myActivityBGView)
myActivityIndicatorView.center = myActivityBGView.center
myActivityBGView.center = view.center
myActivityIndicatorView.startAnimating()
}
}
我在viewWillAppear func中尝试了你的代码,它可以工作。。。无论如何,如果您想使用其他方法,但保持圆角bg视图:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
myActivityIndicatorView = UIActivityIndicatorView(style: .white)
myActivityIndicatorView?.hidesWhenStopped = true
myActivityBGView = UIView.init(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
myActivityBGView?.backgroundColor = UIColor(white: 0.0, alpha: 0.6)
myActivityBGView?.layer.cornerRadius = 15
if let myActivityIndicatorView = myActivityIndicatorView,
let myActivityBGView = myActivityBGView {
myActivityBGView.addSubview(myActivityIndicatorView)
view.addSubview(myActivityBGView)
myActivityIndicatorView.center = myActivityBGView.center
myActivityBGView.center = view.center
myActivityIndicatorView.startAnimating()
}
}
这可能是因为您试图将宽度/高度设置为100?因为它已经具有固有的内容大小。也许可以尝试将其初始化为UIActivityIndicatorView(),并通过以下操作调整中心:indicator=UIActivityIndicatorView()不会显示任何内容。可能是因为您试图将宽度/高度设置为100?因为它已经具有固有的内容大小。也许可以尝试将其初始化为UIActivityIndicatorView(),并通过执行以下操作来调整中心:indicator=UIActivityIndicatorView()不显示任何内容。