2

ビューの上部中央にラベルを設定したい、私はすでにこれを試しました

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(self.myView.center.x, 25, 92, 46)];

しかし、私が望むように実際には中央にはありません。これがどのように見えるかです:http://i49.tinypic.com/e17mty.png

そして、中央のラベルの先頭ではなく、ラベルの中央の x 中央が必要です。

4

8 に答える 8

1

このようにしてみてください、

UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
    lbl.textAlignment=UITextAlignmentCenter;
于 2013-03-12T08:39:53.053 に答える
0

これを試して

int x=(self.myView.frame.size.width-92)/2;
UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(x, 25, 92, 46)];
lbl.textAlignment=UITextAlignmentCenter;
于 2013-03-12T08:43:05.200 に答える
0

それはあなたがプログラムしたことを正確に行います。残念ながら、UIプログラミングには常にいくつかの基本的な数学が関係しています。

考えられる解決策の1つ:任意の位置の適切なサイズのフレームで初期化します。次に、それに応じてラベルビューの中央のプロパティを設定します。

[label setCenter:CGPointMake(self.myView.center.x, 25)];

または、myViewの左から右にすべてのスペースを取り、テキストの配置をNSTextAlignmentCenterに設定するように、フレームを設定するだけです。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 25, self.myView.frame.size.width, 46)];
label.textAlignment = NSTextAlignmentCenter;

または、それに応じて左上隅を計算し、初期化時にフレームを設定します。中央の位置を使用して、幅の半分を差し引きます。または、myViewの完全なwithを使用し、withを減算してから、2で割ります。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(self.myView.center.x-92/2, 25, 92, 46)];

また

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake((self.myView.frame.width-92)/2, 25, 92, 46)];
于 2013-03-12T08:48:53.123 に答える
0

rectを設定するのではなく、中心に設定します

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 25, 92, 46)];
label.center = self.myView.center;
//Also if your frame is bigger than text then you can set this also
label.textAlignment = UITextAlignmentCenter;
于 2013-03-12T08:42:26.770 に答える
0

これを試して:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 92, 46)];
label.center = CGPointMake(label.bounds.size.width / 2, 25);

またはこれ:

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(self.myView.center.x - 46, 25, 92, 46)];
于 2013-03-12T08:46:43.520 に答える