1

我很难理解当我在界面生成器中放置一个 UILabel 然后在我的代码中获取坐标时,如下所示:

self.myLabel.frame.origin.x

我总是得到 0。为什么即使我已经将 UILabel 放在屏幕的中心?如何获得正确的坐标?

UILabel 被添加到 UIScrollView。UIScrollView 覆盖整个 iPhone 屏幕 320X480。UIScrollView 是通过界面生成器添加的。

NSLog(@"%f",self.scrollView.bounds.size.height); returns 0
4

4 回答 4

1

原点始终相对于父视图,在您的情况下为UIScrollView. 一个UIScrollView作品的方式是它的内容可以有一个固定的来源,但随着内容大小和偏移量(滚动位置)的改变,它仍然会出现在不同的地方。

此外,您没有说明 的大小UILabel,因此其中的文本也可能居中,但视图本身要大得多。

此外,您没有说明您在代码中的哪个位置检查坐标;如果您过早检查它们,它们可能尚未设置。

于 2013-03-02T21:05:22.433 回答
0

如果之前的答案都没有解决您的问题,

确保将接口构建器中的标签与其接口头文件中的 IBOutlet 连接起来,在您的情况下,标题应包含

@property (nonatomic,weak) IBOutlet UIlabel* myLabel;

并使用此属性从接口连接器正确连接

于 2013-03-02T21:21:28.070 回答
0

您确定 self.myLabel 不为零,并且您已将其正确连接到您的代码吗?此外,您正在从 xib 文件加载视图,而不仅仅是在视图上使用 alloc/init...

于 2013-03-02T21:09:54.830 回答
0

也许您在将标签添加到视图之前检查它。当您实际上可以在屏幕上看到标签并检查值时,请尝试在代码中的某处放置断点。

于 2013-03-02T19:10:35.437 回答