基本的に、UIButtonをUILabelの最後に表示したいと思います。UILabelはローカライズされているため、位置が異なる場合があります。レイアウトを正しくする方法はありますか?
3 に答える
同じビューにラベルとボタンを追加したいと思います。つまり、テキストはローカライズされており、実行時までテキストのサイズがわかりません。実際、それはあなたが求めていたものとは別のものです。ラベルのサイズを設定する必要があるため、テキストのサイズによって異なります。そして、あなたは例えば次の方法でテキストのサイズを計算することができます
- (CGSize)sizeWithFont:(UIFont *)font
または、次のようなテキストを設定した後、ラベルのサイズを変更できます。
- (void)sizeToFit
ラベルのサイズを終えたら
あなたはあなたのボタンのフレームを次のように設定することができます
button.frame = CGRectMake(label.frame.origin.x + label.frame.size.with, yPosition, buttonWidth, buttonHeight);
ラベルの枠を設定した後、ボタンの枠を設定する必要がありますのでご注意ください。フレームを変更する場合は、ボタンのフレームを変更する必要があります。または、以前のios6.0NSLayoutConstraint
で詳細を確認できますhttps://developer.apple.com/library/ios/#documentation/AppKit/Reference/NSLayoutConstraint_Class/NSLayoutConstraint/NSLayoutConstraint.html
button.frame = CGRectMake(label.frame.origin.x + label.frame.size.width - buttonWidth, label.frame.origin.y, buttonHeight, buttonWidth);
wherebuttonWidth
とbuttonHeight
は、そこに何を配置するかを説明するために私が配置した単なる任意の変数です
ラベルの幅に応じてボタンの X 値を設定すると、ラベルの右側にボタンが設定されます。今それはテストしました。
button.frame = CGRectMake(self.mylabel.frame.origin.x+self.mylabel.frame.size.width, self.mylabel.frame.origin.y, 50.00, 20.00);