2017-08-07 16 views
1

xibファイルからボタンを含むビューをロードしています。Autolayoutのサイズ変更UIButtonとテキストのコンテナビュー

ボタン(緑色)は、ローカライズされた可変テキストを持っています。テキストで動的にサイズを変更するUIButtonが必要ですし、コンテナビューに余分なスペースがないように、コンテナビュー(赤色)をボタンサイズにリサイズする必要があります。

全体的なコンテナの表示は、背景がはっきりと見えるように水平になるべきで、テキストは左または右に揃えて表示されるべきではありません。私は明確にマークする背景色を追加しました:)

XCode自動レイアウトを使用して行うことは可能ですか?

enter image description here

注: 私は

view.translatesAutoresizingMaskIntoConstraints = YES; 

を使用している場合、ボタンは、テキストだけでなく、スーパービュー/コンテナビューでリサイズすることがわかりました。しかし、私は望みの場所にフレームを設定できませんでした、その起源は常に(0,0)です。おそらく、それはレイアウトエンジンを混在させるための制限です。

+0

になります。 –

答えて

0

私の最終的な解決策は、あなたがあなたのケースでスタックビューを使用し、ボタンの幅> = 0を設定することができ、

UIButton *sbt = [UIButton buttonWithType:UIButtonTypeCustom]; 
[sbt setImage: [UIImage imageNamed:@"cog-wheel"] forState:UIControlStateNormal]; 
[sbt setTitle:NSLocalizedString(@"Settings", @"") forState:UIControlStateNormal]; 
[sbt setTitleColor:[UIColor colorWithHexString:@"005173"] forState:UIControlStateNormal]; 
[sbt setTitleColor:[UIColor colorWithHexString:@"a2b9ce"] forState:UIControlStateHighlighted|UIControlStateSelected]; 
[sbt addTarget:self action:@selector(didPressSettingsButton) forControlEvents:UIControlEventTouchUpInside]; 
[sbt sizeToFit]; 
CGFloat sh = sbt.frame.size.height; 
CGFloat yc = self.view.frame.size.height - sh - sh/2; 
sbt.center = CGPointMake(self.view.center.x, yc); 
[self.view addSubview:sbt]; 

enter image description here

関連する問題