質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Q&A

解決済

3回答

2619閲覧

Xcode AutoLayout 真ん中に設定するには

Alice0225

総合スコア206

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

0グッド

0クリップ

投稿2016/07/04 02:30

現在、勉強しながらiOSアプリを試作しています。
AutoLayoutの設定を行う段階まで来たのですが、あるパターンの設定方法がわからず(そもそも可能なのかすらわかっていない)作業が止まってしまい、検索を行って調べてみたのですが解決に至らない為こちらで質問投稿させて頂きました。

・不明点
画面に配置されているビューと、画面のBottom部分のちょうど真ん中にくるようにボタンを配置するにはどうすればよいのか。(添付画像のようなイメージです。)

Googleなどで「Xcode AutoLayout 中央」等で調べては見たのですが、画面に対して中央に配置する説明が出てきてしまい、意図した回答が得られておりません…(検索ワードがそもそも間違っている予感がします)

XIB上で設定する方法、またはコード上で設定を行う方法(または考え方のヒント等)のアドバイスを頂けると幸いです。

イメージ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

下記方法にて自己解決致しました。
①ボタン上下に設定する制約値を算出(下記)

Objective

1 /* 制約用の高さを算出 */ 2 float heightConstraint; 3 heightConstraint = ((メインスクリーンの高さ - (ビューのy位置 + ビューの高さ)) ÷ 2) - ボタンの高さ ÷ 2;

②XIB上にてボタンに上下の制約(Constraint)を追加し、更にヘッダーファイルにプロパティとして追記
③ボタンの制約をソースコード上にて削除(removeConstraint)→制約値を算出したものに更新→追加(addConstraint)

ご回答頂いた「ビューを追加しCenter設定する」方法が一番わかりやすく、実装も簡単そうではあったのですが、不要なビューを画面上に配置することに抵抗があった為、上記方法にて実装とさせて頂きました。

投稿2016/07/04 06:25

Alice0225

総合スコア206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/07/04 06:38

不要なビューを配置するのに抵抗があるのは分かりますが、不要な制約を配置するのには抵抗がないのでしょうか?
Alice0225

2016/07/04 06:47

コメントありがとうございます。 初心者故よくわからないのですが、なぜ「制約が不要」なのでしょうか。
fuzzball

2016/07/04 07:01

あなたの回答に「ボタンの制約をソースコード上にて削除」と書いてますが。
Alice0225

2016/07/04 07:06

なるほどですね。
guest

0

Buttonの下にBaseView(水色)を置くのはどうでしょう、BaseViewの制約の上を中心のView(オレンジ)にして左右下はSuperViewに付ける。

ボタンはBaseViewの中心で良いと思います。
BaseViewは透明にしてくださいね。

image

投稿2016/07/04 03:47

編集2016/07/04 04:02
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alice0225

2016/07/04 06:26

ご回答頂きありがとうございます。 その発想は私にはありませんでした。 とても参考になりました。
guest

0

dummyを用意する方法。

320x320

赤いのがdummyビューです。(Hiddenにしているので半透明になってます)
Button.centerY = dummy.centerY とすれば真ん中に来ます。

投稿2016/07/04 03:01

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alice0225

2016/07/04 06:27

ご回答頂きありがとうございます。 ビューを追加してcenterYを使用する方法があるのですね。 とても参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問