Objective C - frame.origin,frame.size

时间:2013-10-17 14:37:45

标签: ios objective-c button dynamic position

我想垂直向UIScrollView添加按钮。我似乎无法得到正确的起点:

int startPosition = self.view.frame.size.height/2 - self.view.frame.size.height/4;

这是滚动视图frame.origin.y ...问题是当我这样做时:

button.frame = CGRectMake(toolsScrollView.frame.size.width/8, startPosition, (toolsScrollView.frame.size.width*3)/4, (toolsScrollView.frame.size.width*3)/4);

按钮未添加到正确的位置。事实上,即使我写0而不是startPosition,按钮也会添加到y轴上屏幕中间附近的某处。我想不通为什么? frame.origin组件是绝对的还是相对于其他对象的?

1 个答案:

答案 0 :(得分:2)

frame相对于superview的坐标系。在考虑origin时,它只是一个相关的细节,因为这一切都是由坐标系影响的。

要检查的事项:

  1. 代码运行时的frame是什么
  2. 滚动视图的frame.origin是什么
  3. 滚动视图的contentSizecontentInsetcontentOffset是什么
  4. 整数除法会导致什么不准确
  5. 这些事情中的任何一个都会影响子视图的视觉位置