0

UIScrollViewVerticallyにボタンを追加したいと思います。開始点を正しく取得できないようです:

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);

ボタンが適切な場所に追加されていません。実際、startPosition の代わりに 0 を書いても、y 軸上の画面の中央付近のどこかにボタンが追加されます。理由がわからない?frame.origin コンポーネントは絶対的ですか、それとも他のオブジェクトに対して相対的ですか?

4

1 に答える 1

2

frameの座標系に相対的superviewです。originただし、座標系によって影響を受けるのはそれだけであるため、これは関連する詳細にすぎません。

確認事項:

  1. frameあなたのコードが実行されるときは何ですか
  2. frame.originスクロールビューとは
  3. スクロールビューのcontentSizecontentInsetは何ですかcontentOffset
  4. 整数除算の結果、どのような不正確さが得られますか

これらのいずれかが、サブビューの視覚的な位置に影響を与える可能性があります

于 2013-10-17T14:45:32.700 に答える