Activity 横向模式下指示器未居中
Activity indicator not centered in landscape mode
我正在尝试在我的 table 视图顶部添加一个 activity 指示器,使其在纵向和横向模式下都出现在屏幕中央。
activity 指示器放置在主视图的子视图内。 table 视图通过主视图中的视图容器包含。
当我单击 "Add Missing Constraints" 时,指示器获得中心 Y 对齐约束和水平 space (141) 约束。正如预期的那样,这在纵向模式下看起来很好,但在横向模式下,activity 指示器出现在左侧而不是水平居中。
我曾尝试将水平 space 约束更改为中心 X 对齐约束,但这似乎并没有使情况变得更好。
有什么建议吗?
这是特写:
看看你的constraints
。似乎您需要在微调器视图上使用 center x alignment
。
编辑
为了避免一些令人困惑的约束问题,我建议您改为以编程方式放置微调器。您可以在加载时禁用 tableview,将 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;
如果您想以编程方式执行此操作,则在您的控制器中 class:
self.activityIndicatorObject.center = self.view.center;
已编辑:
也许你可以试试这个:
self.activityIndicatorObject.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.height/2.0);
我已通过故事板添加 Activity 指标并分配
- 置顶space到superview
- 中心 x 对齐
它在屏幕中央显示纵向和横向模式的指示器。请试试这个。希望对你有效。谢谢
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.
代码中没有其他问题,只有约束问题。祝你好运。
--> 首先,添加 Spinner View(屏幕截图中的黄色)
Select 它并设置约束,如
将其固定到所有四个边
--> 其次添加 Activity 指标。
Select 它并设置约束,如
中心 X 和中心 Y = 0
如果有任何关于错位视图的警告,select“解决自动布局问题”!
最终约束是这样的
@Stine 不知道你有没有得到答案。但是在情节提要中尝试以下操作。就我而言,它是有效的。
在故事板中设置 activity 指示器视图的垂直和水平对齐方式。而在那个设置之后,宽高约束在Add New Constraints
.
之后
这是纵向和横向模式的最终结果
肖像:
横向:
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))))
我正在尝试在我的 table 视图顶部添加一个 activity 指示器,使其在纵向和横向模式下都出现在屏幕中央。
activity 指示器放置在主视图的子视图内。 table 视图通过主视图中的视图容器包含。
当我单击 "Add Missing Constraints" 时,指示器获得中心 Y 对齐约束和水平 space (141) 约束。正如预期的那样,这在纵向模式下看起来很好,但在横向模式下,activity 指示器出现在左侧而不是水平居中。
我曾尝试将水平 space 约束更改为中心 X 对齐约束,但这似乎并没有使情况变得更好。
有什么建议吗?
这是特写:
看看你的constraints
。似乎您需要在微调器视图上使用 center x alignment
。
编辑
为了避免一些令人困惑的约束问题,我建议您改为以编程方式放置微调器。您可以在加载时禁用 tableview,将 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;
如果您想以编程方式执行此操作,则在您的控制器中 class:
self.activityIndicatorObject.center = self.view.center;
已编辑:
也许你可以试试这个:
self.activityIndicatorObject.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.height/2.0);
我已通过故事板添加 Activity 指标并分配
- 置顶space到superview
- 中心 x 对齐
它在屏幕中央显示纵向和横向模式的指示器。请试试这个。希望对你有效。谢谢
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.
代码中没有其他问题,只有约束问题。祝你好运。
--> 首先,添加 Spinner View(屏幕截图中的黄色)
Select 它并设置约束,如
将其固定到所有四个边
--> 其次添加 Activity 指标。
Select 它并设置约束,如
中心 X 和中心 Y = 0
如果有任何关于错位视图的警告,select“解决自动布局问题”!
最终约束是这样的
@Stine 不知道你有没有得到答案。但是在情节提要中尝试以下操作。就我而言,它是有效的。
在故事板中设置 activity 指示器视图的垂直和水平对齐方式。而在那个设置之后,宽高约束在Add New Constraints
.
之后
这是纵向和横向模式的最终结果
肖像:
横向:
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))))