我在XIB中水平地以UIActivityIndicatorView为中心。

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

我最初的假设是,XIB (或类似的东西)出了问题。然而,在iOS 5(模拟器,iPhone 4)中,它工作得很完美。

考虑到iOS 4到iOS 5中关于UIActivityIndicatorViews的唯一变化就是添加了color属性,我感到很困惑。我知道这里可能没有足够的信息来推断出确切的问题。我更关心从哪里开始调试,并欢迎任何关于我可以提供的进一步信息的建议。
进一步信息:
portPoint = (x, y); landPoint = (w, z);),在旋转时手动设置。当应用程序加载时,这个指示器的来源是(正确的) portPoint (我已经通过NSLog进行了验证),尽管它在视觉上不对齐。当我旋转到景观,原点正确(视觉和数据)设置为landPoint。当我向后旋转时,原点(在视觉上和数据上)正确地设置为portPoint,从而解决了这个问题.。
发布于 2011-12-16 10:18:07
您说得对,w/o看到您的代码,我无法判断还有什么正在进行,但是在superview中以视图为中心,并在设备旋转时保持这一点相当简单。试试这个:
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
UIActivityIndicatorView的autoResizingMask设置为在其超级视图中心的活动指示器,无论是在XIB文件中还是在viewDidLoad
如果上面没有修复它,就发布一些代码以及相关视图的autoResizingMask和contentMode值。
发布于 2011-12-09 23:26:57
它看起来确实像它的位置,好像设备是在景观中。检查是否在视图大小或方向发生更改时将其重新定位。
发布于 2011-12-15 22:12:36
想法:
1/您的视图(活动指示器超级视图)比显示的要大(坏的自动调整掩码?xib plist中的坏值?)或者它在其superview中的位置很差。
2/自动调整掩码的设置不正确。对于活动指标,应该是
(UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)要调试这一点,请尝试将日志登录到viewDidAppear中。获取活动指示器的中心(CGPoint),并使用UIView方法将其转换为顶部视图坐标(例如[UIView convertPoint:fromView:])。这个位置应该和你在屏幕上看到的位置相同。
如果不是,还有一些更大的问题,可能与动画状态有关。否则,您应该能够找到视图,它将您的活动指示器转换为这个奇怪的位置。记录层次结构中所有视图的框架。
检查您是否将信息记录在正确的位置,并且在日志记录之后没有更改视图位置。
https://stackoverflow.com/questions/8330538
复制相似问题