2017-02-16 15 views
0

を動作しません変更:は、プログラムUIStackViewのaligmentは、私が持っているどのような適切

これは、ビューの私の階層です:

  • 「changeAlignment」という名前の作用を有するB1という名前のボタン内部をタッチすると有効になります。
  • フレームとPVIEW(0100414100)という名前のUIView。
    • 「中心」として設定され配向性を持つS1と命名水平UIStackView、。このスタックビューはpViewの境界線に固定されています。
      • S2という名前の水平なUIStackViewは、配置プロパティが「塗りつぶし」に設定され、内側に2つのラベルがあります。私が何をしたいか

私はボタンB1をタッチすると、 "トップ" に "センター" からS1の配置を変更したいです。私は、これは明らかに聞こえるが、それは動作しません!!

- (void) changeAlignment { 
    NSLog(@"P-%li",(long)S1.alignment); 
    S1.alignment = UIStackViewAlignmentTop; 
    NSLog(@"P-%li",(long)S1.alignment); 
    [pView layoutIfNeeded]; 
} 

を試してみました何

。面白いことは、それはいくつかの時間に動作するが、突然それが動作を停止することです。さて、私はb1をタップすると、S1の配置は変わりますが、視覚的には全く変化しません。

私は[self.view setNeedsLayout] [self.view layoutIfNeeded]と[S1 layoutIfNeeded]でしようとしていますが、これは動作しません。私は実際に動作することも可能ですし、突然動作を停止する方法... ??何が問題を

をやってる!! ??

誰もが、これは狂気私を車で... ??私を助けてください。

+0

@coverbackあなたがこれを解決するために私を助けてくださいできますか? – Airel

答えて

0

私はこの答えはHow to programmatically animate the alignment property of an UIStackView in ios 9と同じだと思います。

(1)stackViewは、配置されたサブビューをレイアウトするために必要な制約を自動的に生成します。(2)水平スタックビューS1を別のstackView S2で定義します。 S1のアラインメントプロパティをCenterからTopおよびviceversaに変更したときに、(a)影響を受けない、(b)再計算されない、(c)再計算される、したがって、自動的に生成された制約S1は、アライメントプロパティを変更した後でも変更されないため、UIには変更が反映されず、アニメーションもありません。誰かが別の説明を思いついた場合、それを私に知らせてください。

関連する問題