我在{XIB中水平居中UIActivityIndicatorView
。
在iOS 4(模拟器)中,指标默认为大白(iOS 5中引入的颜色属性),这很好。奇怪的是它也是偏移的。
我最初的假设是XIB出了问题(或者是那种效果)。但是,在iOS 5(模拟器,iPhone 4)中,它运行得很好。
看到关于UIActivityIndicatorView
s,从iOS 4到iOS 5的唯一变化是添加了color
属性,我很难过。我知道这里可能没有足够的信息可以推断出确切的问题。我更关心从哪里开始调试,并欢迎任何关于我可以提供哪些进一步信息的建议。
更多信息:
portPoint = (x, y); landPoint = (w, z);
),我手动设置旋转。当应用程序加载时,指示符的来源是(正确)portPoint
(我已通过NSLog验证),尽管视觉上未对齐。当我旋转到横向时,原点(视觉和数据方式)设置为landPoint
。当我向后旋转时,原点(视觉和数据方式)设置为portPoint
,从而解决了问题。答案 0 :(得分:5)
你是对的,没有看到你的代码,我无法判断是否还有其他事情,但是在超视图中居中并在设备旋转时保持这一点非常简单。试试这个:
确保autoResizingMask
的{{1}}设置为UIActivityIndicatorView
将活动指标置于其超级视图的中心,可以是XIB文件,也可以是UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
不要在旋转时更改活动指示器的框架,它应该自动居中
如果以上操作无法解决问题,请发布一些代码以及相关视图的viewDidLoad
和autoResizingMask
值。
答案 1 :(得分:0)
看起来它看起来就好像设备处于风景中一样。检查视图大小或方向更改时是否正确重新定位。
答案 2 :(得分:0)
思路:
1 /您的视图(活动指示器超级视图)比您的显示器大(自动调整掩码错误?xib plist中的错误值?)或者它在超级视图中的位置不好。
2 /未正确设置自动调整遮罩。对于活动指标,它应该是
(UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)
要调试此操作,请尝试将登录信息放入viewDidAppear。获取活动指示器的中心(CGPoint)并使用UIView方法将其转换为顶视图坐标(例如 [UIView convertPoint:fromView:]
)。此位置应与您在屏幕上看到的位置相同。
如果不是,则存在一些更大的问题,可能与动画状态有关。 否则,您应该能够找到将您的活动指示器转换为这个奇怪位置的视图。记录层次结构中所有视图的帧。
检查您是否在正确的位置记录信息,并且在记录后不会更改视图位置。