gpt4 book ai didi

iphone - UIActivityIndi​​catorView 显示在屏幕中央

转载 作者:太空狗 更新时间:2023-10-30 03:16:08 25 4
gpt4 key购买 nike

有没有办法让 UIActivityIndi​​catorView 显示在屏幕中央以镜像 NetworkActivityIndi​​cator?所以我想要与 NetworkActivityIndi​​cator 相同的过程,只是有一个更大的指示器,用户会更容易注意到。

最佳答案

试试这个:

UIView *view = /* whatever your main view is */
UIActivityIndicatorView *spinner = [[UIActivityIndicatorVIew alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
CGRect frame = spinner.frame;
frame.origin.x = view.frame.size.width / 2 - frame.size.width / 2;
frame.origin.y = view.frame.size.height / 2 - frame.size.height / 2;
spinner.frame = frame;
[view addSubview:spinner];
[spinner startAnimating];
[spinner release]; // Or, you could keep a handle to this for later to stop animating it

这基本上使微调器在其封闭 View 中居中,无论它是什么。

如果您没有保留微调器的句柄,并且微调器是 View 的唯一 subview (或至少在一个众所周知的位置),您稍后可以通过进入 [view subviews ] 为它。

编辑:您也可以使用 CGRectGetMidX()CGRectGetMidY() 而不是上面更复杂的方程来查找 xy...您的里程可能会有所不同。 :-)

编辑(2016 年 2 月 25 日)

这个答案最近收到了一些赞成票,所以我认为有必要进行更新。实际上现在有更好的方法来做到这一点。此示例将 UIActivityIndi​​catorView 放置在 UITableView 的中心。

self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
_spinner.translatesAutoresizingMaskIntoConstraints = NO;
_spinner.hidesWhenStopped = YES;
[self.tableView addSubview:self.spinner];

[self.tableView addConstraints:@[
[NSLayoutConstraint constraintWithItem:_spinner
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeCenterX
multiplier:1 constant:0],
[NSLayoutConstraint constraintWithItem:_spinner
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeCenterY
multiplier:1 constant:0]
]];

关于iphone - UIActivityIndi​​catorView 显示在屏幕中央,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com