質問編集履歴

1 setViewメソッドをコールバックに変更

yoppy0066

yoppy0066 score 300

2015/06/22 01:25  投稿

addSubviewしたビューの縦位置がずれてしまう原因について
ViewControllerでaddSubviewしたテーブルビューの位置(縦)がずれてしまうのですがどのようなことが原因として考えられますでしょうか?
実装方法としては以下のような形になります。
ただ、さらにわからない挙動なのですがpushViewControllerで別ページへ遷移してから戻るボタンで戻ると位置ずれは解消して期待通りの表示となります
 
また、原因はすこしわかったのですが解決方法がわかりません。  
というのは、getByApiというメソッドを下記で使用しているのですが、これはhttp通信してデータを取得し終わったらsetViewというコールバックメソッドを呼ぶような形にしています。getByApiを呼ばずに直接setViewメソッドをよぶとこのようなことは起きませんでした。  
以上、どなたかご回答いただけないでしょうか
ViewController.swift
`
override func viewDidLoad() {
   setView()
   getByApi(setView)
}
func setView() {
   ・・・
   let tableView = UITableView(frame: CGRect(x:0, y:0, self.view.frame.width, height:self.view.frame.height))
   ・・・
   self.view.addSubview(tableView)
}
`
  • Objective-C

    1418 questions

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

  • Xcode

    8379 questions

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

  • Swift

    14479 questions

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

  • iPhone

    1767 questions

    iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る