web-dev-qa-db-ja.com

プログラムでUIScrollViewフレームのサイズを設定する方法は?

私は初心者なので、私の質問は本当に明白ですが、今のところ解決策は見つかりませんでした。

私はIB UIScrollViewでそれをファイルの所有者と接続しました。 UIScrollView(名前はScrollView)のフレームサイズを設定します。

const CGFloat BoardWidth = 320;
const CGFloat BoardHeight = 400;

//I tried this way but 'Expression is assignable' - said Xcode
ScrollView.frame.size.width = BoardWidth;
ScrollView.frame.size.height = BoardWidth;

それでは、ScrollViewフレームの独自のサイズを最も簡単に設定するにはどうすればよいですか?

14
Konrad Kolasa
CGRect scrollFrame = CGRrectMake(x, y, w, h);
ScrollView.frame = scrollFrame;

または、幅と高さのみを変更する必要がある場合。

CGRect scrollFrame;
scrollFrame.Origin = ScrollView.frame.Origin;
scrollFrame.size = CGSizeMake(w, h);
ScrollView.frame = scrollFrame;

編集中心を変更せずに維持:

CGRect scrollFrame;
CGFloat newX = scrollView.frame.Origin.x + (scrollView.frame.size.width - w) / 2;
CGFloat newY = scrollView.frame.Origin.y + (scrollView.frame.size.height - y) / 2;
scrollFrame.Origin = CGPointMake(newX, newY);
scrollFrame.size = CGSizeMake(w, h);
scrollView.frame = scrollFrame;
17
sch

たとえば、これを行う必要があります。

ScrollView.frame = CGRectMake(0, 0, BoardWidth, BoardHeight);

完了したら、contentSizeプロパティも設定する必要があります。 UIScrollViewのフレームの後ろに「広がる」領域です。

水平方向にのみスクロールする場合:

ScrollView.contentSize = CGSizeMake(w * BoardWidth, BoardHeight);

垂直方向にのみスクロールする場合:

ScrollView.contentSize = CGSizeMake(BoardWidth, h * BoardHeight);

水平方向と垂直方向の両方にスクロールする場合:

ScrollView.contentSize = CGSizeMake(w * BoardWidth, h * BoardHeight);

ここで、wおよびhは、幅または高さ、あるいはその両方を増分するための一般的な値です。

水平方向の(たとえば)個別のスクロールが必要な場合(たとえば、画面のサイズが同じページがいくつかある場合)。

ScrollView.pagingEnabled = YES;
ScrollView.contentSize = CGSizeMake(p * BoardWidth, BoardHeight);

ここで、pは表示するページ数です。

それが役に立てば幸い。

5
Lorenzo B

あなたは以下のようにそれを行うことができます、

scrollView.frame = CGRectMake(xOrigin,yOrigin,width,height);

Scrollviewのコンテンツサイズを探しているなら、以下のように、

scrollView.contentSize = CGSizeMake(width,height);
4
cocoakomali
CGRect Frame = ScrollView.frame

Frame.frame.size.width = BoardWidth;
Frame.frame.size.width = BoardWidth;

ScrollView.frame = Frame;

フレームは構造なので、オブジェクトのフレームを直接設定することはできません。Cgrectを作成して操作する必要があります。

1
Shubhank

contentSizeプロパティの使用

ScrollView.contentSize = CGSizeMake(320, 520);

実際にスクロールするように、フレームよりも大きくする必要があります。

0
moxy