我正在尝试在表格视图的顶部添加一个活动指示器,使其以纵向和横向模式显示在屏幕中央。
活动指示器位于视图内,该视图是主视图的子视图。表视图包含在主视图中的视图容器中。
当我单击“添加缺失约束”时,指示器将获得中心Y对齐约束和水平空间(141)约束。正如预期的那样,这使得在纵向模式下看起来很好,但在横向模式下,活动指示器显示在左侧而不是水平居中。
我试图将水平空间约束更改为中心X对齐约束,但这似乎不会使情况更好。
有什么建议吗?
以下是关闭:
答案 0 :(得分:4)
- >首先,添加Spinner视图(如屏幕截图中的黄色视图)
选择它并设置约束,如
将其固定到所有四条边
- >其次,添加活动指标。
选择它并设置约束,如
中心X和中心Y = 0
如果有错位视图的警告,请选择“解决自动布局问题”!
最后,约束看起来像这样
答案 1 :(得分:2)
如果您想以编程方式执行此操作,请在控制器类中执行此操作:
self.activityIndicatorObject.center = self.view.center;
已编辑:
可能你可以试试这个:
self.activityIndicatorObject.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.height/2.0);
答案 2 :(得分:1)
SWIFT 3.2
试试这个
self.activityIndicator.center = CGPoint(x:self.view.bounds.size.width/2.0,y: self.view.bounds.size.height/2.0);
activityIndicator.autoresizingMask = (UIViewAutoresizing(rawValue: UIViewAutoresizing.RawValue(UInt8(UIViewAutoresizing.flexibleRightMargin.rawValue) | UInt8(UIViewAutoresizing.flexibleLeftMargin.rawValue) | UInt8(UIViewAutoresizing.flexibleBottomMargin.rawValue) | UInt8(UIViewAutoresizing.flexibleTopMargin.rawValue))))
答案 3 :(得分:0)
看看你的constraints
。您的微调器视图似乎需要center x alignment
。
修改强>
为了保存一些令人困惑的约束问题,我建议你以编程方式放置微调器。您可以在加载时自动禁用您的桌面视图,并将userInteractionEnabled
设置为NO
。
// Set up your spinner
UIActivityIndicatorView * spinner = [[UIActivityIndicatorView alloc] init];
[spinner setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
[spinner setHidesWhenStopped:YES];
[spinner setCenter:self.view.center];
[spinner startAnimating];
[self.view addSubview:spinner];
// disable your tableView
tableView.userInteractionEnabled = NO;
答案 4 :(得分:0)
我已经通过故事板添加了活动指标并指定了
它显示了纵向和横向模式的屏幕中央的指示器。请试试这个。希望对你有效。感谢
答案 5 :(得分:0)
Your constraints are having problem, i have done the same thing in sample,
please take a look and try to set constraints accordingly,
it would fix the problem. I have attached a snapshot for constraints.
仅代码限制问题中没有其他问题。祝你好运。
答案 6 :(得分:0)