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

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

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

6938閲覧

UIStackViewでisHiddenしても間を詰めないようにしたい

apple2

総合スコア37

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/08/27 07:52

UIStackViewで部品を
parts.isHidden = true
にするとなくなったスペースを詰めて表示されますが
スペースを詰めずに空白のまま置いておくことはできますでしょうか?

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

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

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

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

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

fuzzball

2017/08/28 01:01

UIStackViewの設定を書いて下さい。
apple2

2017/08/28 06:41

全てStoryBoardでやってます、
fuzzball

2017/08/28 06:50 編集

Attributes inspectorのStack Viewの設定を書いて下さい。
apple2

2017/08/28 06:57

Axis Vertical
apple2

2017/08/28 06:59 編集

Axis Vertical Alignment Fill Distribution Fill Equally Spacing 10 となっています
Stripe

2017/08/28 10:47

alpha値をゼロにするとかじゃダメなんですか?
apple2

2017/08/28 10:49

alpha=0 & enable=false ではボタンを連打すると、押せてしまって、動作させたくない時に困るんです
Stripe

2017/08/28 10:55

enable=falseの状態で、ボタン連打で押せてしまうのは変です。何か別の問題が発生しているのでは?
apple2

2017/08/28 11:01

押された直後にaneble=falseしてるんですが、キューにはいってしまいます
Stripe

2017/08/28 11:05

押された直後にenable=false? 押される直前はenable=trueという事ですか?
apple2

2017/08/28 11:57

押されたら isEnable = false です
Stripe

2017/08/28 12:48

つまり、ボタンを押したらボタンが消えて押せなくなるようにしたい、ということ?
apple2

2017/08/28 23:44

消えなくても押せなくできればいいんです
apple2

2017/08/28 23:44

ただisEnable=falseだと連打した時に2回押せてしまうんです
Stripe

2017/08/29 10:57

それは、「UIStackViewでisHiddenしても間を詰めないようにしたい」とは主旨が全然違う話になると思います。質問文を全面訂正してください。あと、enable=falseでボタンが押せてしまうのは、通常ではありえません。そもそも、UIButtonはイベント・キューを持っていないし。
apple2

2017/08/30 05:52

少し他に原因があるか調べてから、解決しなかったら別の質問を立てます、ありがとうございます
guest

回答1

0

ベストアンサー

DistributionをEqual Spacingにしてみて下さい。
思っているような配置になるでしょうか?


例えばですが、

StackView | +- Button | +- Label | +- Button

StackViewは、画面一杯になるように制約を付けています。
乗せている3つのUIに関しては制約無し。

StackViewの設定は、
Axis: Vertical
Alignment: Fill
Distribution: Equal Spacing または Equal Centering
Spacing: 10

この状態で、真ん中のLabelをhiddenにしても上下のButtonの位置は変わりません。

投稿2017/08/28 07:13

編集2017/08/28 08:54
fuzzball

総合スコア16731

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

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

apple2

2017/08/28 07:18

Distributionは選べる5つを全て試しましたが、同じでした isHidden=trueにすると、スペースが詰められてレイアウトが崩れます
fuzzball

2017/08/28 07:36

こちらのテストでは、Equal SpacingかEqual Centeringで詰められませんでした。 乗せているViewの情報など、もう少し詳しく書いて下さい。
apple2

2017/08/28 07:41

メンバーにはViewではなく、直接ボタンやラベルが入ってます やはり一度Viewに格納してからメンバーにした方がいいですかね
apple2

2017/08/28 07:43

Viewに格納したボタンをHiddenにするとViewは残るのでレイアウトは崩れません しかし、ボタンの数が半端なく多いので、なんとかしたいと思っています
fuzzball

2017/08/28 08:14

UIButtonやUILabelなどを引っくるめて「View」と書きました。 Viewの配置はコードですか?
apple2

2017/08/28 08:38

部品は全てStoryBoardで配置しています
fuzzball

2017/08/28 08:42

サイズの制約は付けているのでしょうか? ‥と続けていてはキリが無いので、詳細な情報を書いてもらえませんか?
fuzzball

2017/08/28 08:55

私が試した設定などを回答に追記しましたので、参考にして下さい。
apple2

2017/08/28 08:58

個々のパーツにサイズはつけていません Fillで自動計算してくれるからいいのかなと思ったんですが そこがだめなのでしょうか
fuzzball

2017/08/28 09:03

あー、4つ以上だとダメですね。3つで試した私がアホでした。 サイズなり間隔なりを「イイ感じ」にしてくれるのがStackViewのいい所だと思うので、勝手に配置されて困るのでしたら、制約を付けるか、コードで配置した方が良いと思います。
fuzzball

2017/08/28 09:40

一つアイデア。 上手くいくかどうか分かりませんが、hiddenにするのではなく、alpha=0にしてみるのはどうでしょうか?
apple2

2017/08/28 10:46

alpha=0 & enable=false では、タイミングのすきまでボタンが押せてしまうんです やはり手間がかかるけど、ひとつづつViewに配置していきます ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問