UIActivityIndi​​catorView未对齐

时间:2011-11-30 17:50:29

标签: iphone cocoa-touch position xib uiactivityindicatorview

我在{XIB中水平居中UIActivityIndicatorView

XIB

在iOS 4(模拟器)中,指标默认为大白(iOS 5中引入的颜色属性),这很好。奇怪的是它也是偏移的。

iOS4

我最初的假设是XIB出了问题(或者是那种效果)。但是,在iOS 5(模拟器,iPhone 4)中,它运行得很好。

iOS5

看到关于UIActivityIndicatorView s,从iOS 4到iOS 5的唯一变化是添加了color属性,我很难过。我知道这里可能没有足够的信息可以推断出确切的问题。我更关心从哪里开始调试,并欢迎任何关于我可以提供哪些进一步信息的建议。

更多信息:

  • iPad将指示器加载到可靠的位置,仅在iOS 4和iOS 5之间改变颜色。
  • 我有两个静态原点(portPoint = (x, y); landPoint = (w, z);),我手动设置旋转。当应用程序加载时,指示符的来源是(正确)portPoint(我已通过NSLog验证),尽管视觉上未对齐。当我旋转到横向时,原点(视觉和数据方式)设置为landPoint。当我向后旋转时,原点(视觉和数据方式)设置为portPoint,从而解决了问题。

3 个答案:

答案 0 :(得分:5)

你是对的,没有看到你的代码,我无法判断是否还有其他事情,但是在超视图中居中并在设备旋转时保持这一点非常简单。试试这个:

  1. 确保autoResizingMask的{​​{1}}设置为UIActivityIndicatorView

  2. 将活动指标置于其超级视图的中心,可以是XIB文件,也可以是UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin

  3. 不要在旋转时更改活动指示器的框架,它应该自动居中

  4. 如果以上操作无法解决问题,请发布一些代码以及相关视图的viewDidLoadautoResizingMask值。

答案 1 :(得分:0)

看起来它看起来就好像设备处于风景中一样。检查视图大小或方向更改时是否正确重新定位。

答案 2 :(得分:0)

思路:

1 /您的视图(活动指示器超级视图)比您的显示器大(自动调整掩码错误?xib plist中的错误值?)或者它在超级视图中的位置不好。

2 /未正确设置自动调整遮罩。对于活动指标,它应该是

(UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)

要调试此操作,请尝试将登录信息放入viewDidAppear。获取活动指示器的中心(CGPoint)并使用UIView方法将其转换为顶视图坐标(例如 [UIView convertPoint:fromView:])。此位置应与您在屏幕上看到的位置相同。

如果不是,则存在一些更大的问题,可能与动画状态有关。 否则,您应该能够找到将您的活动指示器转换为这个奇怪位置的视图。记录层次结构中所有视图的帧。

检查您是否在正确的位置记录信息,并且在记录后不会更改视图位置。