26

いくつUIViewかのテキストを追加したいものがあります。私は使用しましたUITextViewが、編集可能である必要がないので、それはやり過ぎだと思います。UILabelまたはを使用することを考えましたが、スーパービューにまたはUITextFieldを配置する場所をどのように指示するかわかりません。選択したフォント/色/サイズのテキストを必要な場所に配置できる、フットプリントが最も小さいオブジェクトが必要です。質問するのは多すぎませんねUILabelUITextFieldUIView

4

7 に答える 7

63

最も簡単なアプローチは次のとおりです。

UILabel *yourLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 20)];

[yourLabel setTextColor:[UIColor blackColor]];
[yourLabel setBackgroundColor:[UIColor clearColor]];
[yourLabel setFont:[UIFont fontWithName: @"Trebuchet MS" size: 14.0f]]; 
[yourSuperView addSubview:yourLabel];

コードでビューを作成または入力するには、おそらくCGRectMake多くのことを使用する必要があります。その名前が示すように、それはあなたが相対的な位置(あなたのスーパービューの境界に対して)とあなたのサイズUIView-Subclass(この場合はa UILabel)を設定するために使用できる長方形を作成します。

それはこのように動作します:

yourLabel.Frame = CGRectMake(x, y, width, height); //x,y,width,height are float values.

xスーパービューの左側の境界線と追加しようとしているサブビューの開始点の間の間隔を定義しyます。これは、スーパービューの上部境界線の間の間隔にも当てはまります。幅と高さは一目瞭然だと思います。

これがあなたを軌道に乗せることを願っています。

于 2010-07-09T07:18:39.433 に答える
8

UILabel を配置する場所をビューに伝える方法を見つける代わりに、「center」を使用してビュー内のどこに配置するかを UILabel に伝えることができます。

例えば

myLabel.center = CGPointMake(0.0, 0.0);

UILabel を使用できることを願っています。私にとっては、これは編集不可能な柔軟なテキストの基本的な形式です。

于 2010-07-09T04:44:48.323 に答える
4

スイフトの場合:

    let yourLabel = UILabel(frame: CGRectMake(100, 100, 100, 100))
    yourLabel.textColor = UIColor.whiteColor()
    yourLabel.backgroundColor = UIColor.blackColor()
    yourLabel.text = "mylabel text"
    yoursuperview.addSubview(yourLabel)
于 2014-11-23T16:14:05.000 に答える
2

この質問は古いですが、UILabelまたはUITextFieldを使用しない純粋なUIViewテキストオプションの場合(他のすべての回答が説明しているように、問題はそれらなしでそれを行う方法です)、サブクラス化されたUIViewのdrawRectが機能します。そのようです:

 - (void)drawRect:(CGRect)rect{
     NSString *string = @"Hello World!";
     [string drawAtPoint:CGPointMake(100, 100) withFont:[UIFont boldSystemFontOfSize:16.0]];
 }
于 2012-11-06T22:35:48.740 に答える
1

このルーチンはテキストを XY 位置に表示します

-(void)placeText:(NSString *)theText:(int)theX:(int)theY {
    UILabel *textLabel;

    // Set font and calculate used space
    UIFont *textFont = [UIFont fontWithName:@"Helvetica" size:14];
    CGSize textStringSize = [theText sizeWithFont:textFont constrainedToSize:CGSizeMake(300,50) lineBreakMode:NSLineBreakByTruncatingTail];

    // Position of the text
    textLabel = [[UILabel alloc] initWithFrame:CGRectMake(theX+OFFSETIMAGEX-(textStringSize.width/2), theY+OFFSETIMAGEY-(textStringSize.height/2), textStringSize.width,textStringSize.height)];

    // Set text attributes
    textLabel.textColor = [UIColor blackColor];
    textLabel.backgroundColor = [UIColor orangeColor];
    textLabel.font = textFont;
    textLabel.text = theText;

    // Display text
    [self.view addSubview:textLabel];
}
于 2012-12-06T20:23:21.773 に答える
0

ビューにUILabelを追加します。次に、ビューのlayoutSubviewsメソッドをオーバーライドします。

于 2010-07-09T04:32:47.580 に答える