0

我想将按钮添加到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 组件是绝对的还是相对于其他对象的?

4

1 回答 1

2

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

检查事项:

  1. 你的代码什么frame时候运行
  2. 什么是frame.origin滚动视图
  3. 滚动视图的contentSize,contentInset和是什么contentOffset
  4. 整数除法会导致什么不准确

这些事情中的任何一项都会影响子视图的视觉位置

于 2013-10-17T14:45:32.700 回答