2268


下記画像のようなUIを作っています。

![画像の説明をここに入力](https://i.stack.imgur.com/drxdPm.png)

RatingとComment
Textの間には画像がある場合と無い場合があり、画像が無いときに表示を詰めたいと考え、下記の処理をしているのですがうまくスペースを削除することができません。

よい方法がありましたらご教示くださいませ。

## やったこと

  * Auto LayoutでComment Text（Text View）が画像（Image View）から1ピクセルになるように設定した⇒Top Space to: Image View Equals: 1

  * この画面のView Controllerの`viewWillAppear`で、画像データが存在しないときには、Image Viewの高さが０になるようにした。
[code]     if (!_image)

    {
        CGRect rect = CGRectMake(20,108,280,0); //新しいサイズを指定
        _thumImageView.frame = rect;
    }
    
[/code]


CC BY-SA 3.0
2014-12-20T12:15:02.217
2246
2014-12-20T15:24:11.453
2014-12-20T15:18:35.853
682
682
question
ios objective-c autolayout
画像データが無いときにImage Viewの分のスペースを詰めて表示するには？


ImageViewの高さについてどのようなConstraintを設定されているのか分かりませんが  
もし、定数でHeightのConstraintを設定されているのであれば、そちらをIBOutletで接続し、constantの値を変更してください

[code]

    @implementation ViewController 
    {
        IBOutlet NSLayoutConstraint *_imageViewHeightConstraint;
    }
    
    - (void)viewWillApper
    {
        [super viewWillAppear];
    
        if (!_image)
        {
            _imageViewHeightConstraint.constant = 0; // 高さを0にする制約を設定
            [self.view layoutIfNeeded]; // ビューの再配置を実行
        }
    }
    
    @end
    
[/code]


CC BY-SA 3.0
2014-12-20T15:24:11.453
2268
2014-12-20T15:24:11.453
3808
2246
answer