UILable for iPhoneの画面を水平方向に揃えようとしていますが、プロパティがないx
かleft
、プロパティがありません。画面上でどのように中央揃えにすることができますか?
3 に答える
オブジェクトが持つプロパティのタイプを判別する最良の方法は、クラス参照を使用することです。UILabelクラス参照を最初に見ると、ラベルの表示を調整するためのプロパティがないことがわかります。
しかし、一番上を見ると、UILabelがどこから継承しているかがわかります。UIViewから継承されていることがわかります。これは、画面(ビュー)上のラベルの位置を調整する方法を尋ねているので、必要なものを探すのに意味があります。
UIViewをクリックすると、その参照に直接移動します。いくつかのカテゴリがあり、それぞれにいくつかのプロパティがある「タスク」のリストが表示されるまで下にスクロールします。「frame」というプロパティがある「BoundsandFrameRectangles」カテゴリに関心があります。
これで、myLabel.view.frameを介してUILabelsフレームを設定できると判断しました。
しかし、フレームを設定する方法がわからない場合があるため、これまで見てきたクラスリファレンスの「フレーム」をクリックする必要があります。
フレームのタイプがCGRectであることがわかるので、CGRectMakeを使用してフレームを設定できます。しかし今、あなたはそれをどのように行うかを尋ねているので、CGRectリファレンスをクリックします。
また、CGRectはCGPointとCGSizeで構成される構造体であることがわかります。必要に応じて、それらも調べて、それらがどのように定義されているかを理解してください。
今回は、将来自分でできるように、ドキュメントの使い方の流れを説明しました。他の人の助けを借りてしばらく生き残ることができますが、最終的にはドキュメントに飛び込んで自分で理解する必要があります。
つまり、次の方法を使用してラベルの位置を設定できます。
myLabel.frame = CGRectMake(self.view.frame.size.width/2-someWidth/2, self.view.frame.size.height/2-someHeight/2, someWidth, someHeight);
someWidthとsomeHeightはfloatタイプのカスタム変数であり、self.viewはラベルを中央に配置するスーパービューです。
私はコードをテストしませんでしたが、これはうまくいくはずだと信じています。頑張って。
探しているプロパティはframe
orcenter
プロパティです。この場合、center
おそらく最善の策です。あなたがする必要があるのは、次のようなものです:
CGPoint newCenter = myLabel.center;
newCenter.x = self.view.center.x;
myLabel.center = newCenter;
また
myLabel.center = CGPointMake ( self.view.center.x, myLabel.center.y );
autolayout または autoresizingmask を使用して中央揃えを維持する、より高度な方法があります。それらについて学ぶことに興味がある場合 (autolayout は最も堅牢で、ある意味ではユーザーフレンドリーです)、Auto Layout に関するWWDC 2012 セッションを見ることをお勧めします。
これは機能します:
mylabel.center = CGPointMake(CGRectGetMidX(self.view.bounds), mylabel.center.y);