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

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

ただいまの
回答率

89.98%

TableViewCellをカスタムしAutoLayoutでViewオブジェクトを整えた際に上部番号の位置が不安定になる

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,225

kaji

score 619

storyboard内のAutolayoutはこのように5つ設定してます。
それぞれのオブジェクトの高さ間隔のみAutolayoutで追加してます。
イメージ説明

番号の高さが不揃いになってます。
本来であれば番号ラベルは緑ラベルと同じY位置になるはずなのですが・・
68,73,79,80が上ずってます。他は正常な位置です。
イメージ説明

TableViewメソッド内でcellのラベルにデータを入れてます。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("TestTableViewCellId") as! TestTableViewCell
cell.titleLabel.text = "ラベル1"
cell.textbodyLabel.text = _data["text"]
cell.numLabel.text = _data["num"]
cell.textbodyLabel.numberOfLines = 0; // 複数行
cell.textbodyLabel.sizeToFit()
return cell
}

何が悪いのでしょうか?

追加20160705 0:19
イメージ説明

追加20160705 10:19
番号ラベルの上部にもAutolayoutを設置してます。
イメージ説明

番号ラベルのY座標にばらつきがあります。
イメージ説明

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

数字ラベルグリーンのラベルを同時に選択して、それぞれの上揃え(Top Edges)、or 中央揃え(Vertical Center)の制約を付け加えると揃うと思います。

例は2つのラベルの中央揃え(Vertical Center)
image

プロジェクト

以下にサンプルプロジェクトを置きました、ダウンロードして確認してみてください。
teratail_40075

i

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/05 10:22 編集

    番号ラベルの上の制約は追加した画像にある通り入ってます。(これは投稿初回から入れてます。)

    ImageViewを3つ消すと番号ラベルのAutoLayoutはうまくいきました。
    しかし、
    やりたいこととして投稿にImageデータがある場合は3つまで表示するというような
    処理をしたいのでImageViewを3つ設置してます。
    全Cellにダミーで画像を入れた状態で
    確認しましたがやはり番号のLabelのy座標にブレがありました。

    追加で、番号ラベルと、緑ラベル、本文ラベルの左右に制約を入れました。
    画像の左右に制約を入れたところ画像が上下にひしゃげてしまったので制約を入れてません。
    また、3番目の画像の下側の制約入れてません。

    キャンセル

  • 2016/07/05 21:52

    サンプルプロジェクトを作成しまいした(回答に記述)、おおよそのやりたいことは出来ていると思います。

    確認してみてください。

    キャンセル

  • 2016/07/24 10:24

    サンプルまで作っていただきありがとうございます。
    DLしてみたところうまく動きました。
    サンプルと比較しながら修正していきたいと思います。
    _Kentarouさんありがとうございます。

    キャンセル

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

  • ただいまの回答率 89.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる