2016-05-05 5 views
0

В настоящее время я передаю все мои контроллеры viewboard для кода, и в настоящее время я столкнулся с визуальной проблемой. Это по какой-то причине не размножается на мой код addSubView()Установить статическое положение Просмотр внутри Tableview (Swift)

Вот как это выглядит на моей Раскадровка

enter image description here

это код, который добавляет View внутри Tableview

let profileView = UIView(frame: CGRectMake(0,0,500,45)) 
    profileView.backgroundColor = UIColor(red:0.35, green:0.77, blue:0.66, alpha:1) 
    self.tableview.addSubview(profileView) 

Проблема заключается в том, что с помощью этого кода вид прокручивает представление по мере того, как я поднимаюсь или опускаюсь, и с помощью VC Storyboard он только прокручивает Tableview, и мое представление просто остается неподвижным в позиции, которую я поместил, и это так, как я нравится быть. "Статические"

enter image description here

Это также ilustrates то, что я хочу достичь. enter image description here

ответ

0

Я выбросил это вместе для вас. Это пример того, как это сделать. Однако UITableview не предназначалось для использования таким образом. Вы можете видеть, что ячейка 0 покрывается вашим пользовательским представлением. Это необходимо учитывать при заполнении таблицы с вашего источника данных.

import UIKit 

class testTableVIewController: UITableViewController { 
    @IBOutlet var theTableView: UITableView! 
    var profileView:UIView 

required init?(coder aDecoder: NSCoder) { 
    profileView = UIView(frame: CGRectMake(0,0,500,45)) 
    profileView.backgroundColor = UIColor(red:0.35, green:0.77, blue:0.66, alpha:1) 
    super.init(coder: aDecoder) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.theTableView.addSubview(profileView) 

} 
override func scrollViewDidScroll(scrollView: UIScrollView) { 
    profileView.frame = CGRectOffset(profileView.frame, scrollView.contentOffset.x, 0); 

} 

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 20 
} 
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = theTableView.dequeueReusableCellWithIdentifier("cell") 
     cell?.textLabel?.text = String(indexPath.row) 
     return cell! 
    } 
} 

enter image description here

вместо того, чтобы поместить вид как вид вложенную табличного то, что вы должны сделать это.

  1. создать вид. (я буду называть это представление содержимого для удобства)
  2. Добавить представление этого содержимого.
  3. добавить представление таблицы в представление содержимого.

просто поместите представление вида/таблицы рядом друг с другом внутри представления содержимого. , это будет иметь желаемый эффект просмотра таблицы прокрутки и статического представления рядом друг с другом. обратный шаг 2 & 3 Если желаемый эффект представляет собой плавающий вид над представлением таблицы.

О кстати. Переход на такой макет довольно прост, если вы все это делаете в коде. Просто измените свой контроллер табличного представления на контроллер представления и примените UITablview Protocols.

class testTableVIewController: UITableViewController { 
class testTableVIewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

, затем добавить объект класса tableview. Также добавьте его в self.view в правильном положении. также не забудьте добавить свой зеленый вид к self.view

Если вы сделаете это так, вам не придется вообще менять код.

+0

Не тот ответ, который я ищу, поскольку он заставит меня создать Viewcontroller и изменить большую часть моей текущей логики. Должен быть более простой способ сделать это с UITableviewController, а не с UIViewController. – eddwinpaz

+0

То, что вы хотите сделать, на самом деле сложнее. Вам нужно будет отслеживать положение прокрутки и перемещать представление по мере прокрутки прокрутки таблицы. Для этого используйте scrollViewDidScroll. На самом деле это очень мало кода для изменения, чтобы сделать это так, как я говорю. – kent

+0

Я отредактировал свой вопрос и добавил новое изображение – eddwinpaz

 Смежные вопросы

  • Нет связанных вопросов^_^