2

from storyboardUIView内に1 つ作成しました。上記のラベル、imageview などのビューがさらに表示されます。UIScrollViewUIViewUIScrollView

フレームをプログラムで UIView に設定したい。プログラムでsetFrame関数を使用してフレームを設定しようとしましたが、 のUIView中にある では機能しませんUIScrollView

このような同様の質問を見たことがありますが、どこでもプログラムで UIView を作成しますがUIView、ストーリーボードで作成したものを使用し、フレームをそれに設定したいと考えています。

誰でも私に提案してもらえますか、どうすればこれを行うことができますか?

ありがとう。

Edit1:コードを追加

[myownview setFrame:CGRectMake(0, 50, 320, 110)];

myownview は UIScrollView 内に追加された UIView であり、上記のコードを viewDidLoad メソッド内に記述します。

編集2:

 NSString userText = @"Some long text which is multiple lines";

 CGSize constraint = CGSizeMake(200, 90000.0f);

 // Get the size of the text given the CGSize we just made as a constraint
 CGSize size = [userText sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:13] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];

 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20,20, size.width, size.height)];
[myLabel setLineBreakMode:NSLineBreakByWordWrapping];
[myLabel setNumberOfLines:0];
myLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:13];
[myscrollView addSubview:myLabel];

[myownview setFrame:CGRectMake(0, myLabel.frame.origin.y+myLabel.frame.size.height+10, 320, 110)];

IBOutlets を適切に作成しました。

myscrollview frame is (0, 135, 320, 298) on storyborad

myownview frame is (0, 214, 320, 110) on storyborad inside myscrollview

以下のように contentsize を myscrollview に設定しました

myscrollView.contentSize =  CGSizeMake(320, 600);

myownview の原点を変更したいと考えています。

最も重要な条件は Autolayout is "TRUE"です。

4

2 に答える 2

1

Autolayout が True の場合、プログラムで myownview を scrollview に追加することで解決しました。

myownview = [[UIView alloc] initWithFrame:CGRectMake(0, myLabel.frame.origin.y+myLabel.frame.size.height+10, 320, 110);

[myscrollView addSubview:myownview];

myscrollView.contentSize =  CGSizeMake(320, myownview.frame.origin.y+myownview.frame.size.height+10);

それ以外の場合、Autolayout が False の場合、「eptdeveloper」と「preetam」によって提供される両方の回答が正しいです。

于 2013-09-04T11:37:17.073 に答える