【问题标题】:Objective C - frame.origin, frame.size目标 C - frame.origin,frame.size
【发布时间】:2013-10-17 14:37:44
【问题描述】:

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

【问题讨论】:

  • 我无法回答您的问题.. 请您详细说明一下吗?
  • 显示用于创建UIScrollView 实例的代码。
  • 正如你现在所拥有的,startPosition 将是滚动视图高度的 1/4 (1/2 - 1/4 = 1/4)。计算不应该基于内容大小而不是滚动视图的可见大小吗?
  • BTW - 视图的框架总是相对于它的父级。如果视图的原点是 0,0,它将位于其父级的左上角,而不是屏幕。
  • 知道了....frame .bounds ...两个完全不同的东西:)) ...不知道

标签: ios objective-c button dynamic position


【解决方案1】:

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

检查事项:

  1. 代码运行时frame 是什么
  2. 什么是滚动视图的frame.origin
  3. 滚动视图的contentSizecontentInsetcontentOffset是什么
  4. 整数除法会导致哪些错误

其中任何一项都会影响子视图的视觉位置

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2012-03-25
    • 2011-09-09
    相关资源
    最近更新 更多