Когда я запускаю свое приложение в симуляторе, мои ячейки таблицы имеют правильную длину (iPhone 5s), но когда я запускаю его на iPhone6, ячейки начинаются как вся ширина экрана, а затем evert назад к размеру их iPhone 5s.UITableViewCell в разных размерах экрана
Любые идеи о том, что я делаю неправильно?
Код:
override func viewDidLoad() {
super.viewDidLoad()
theTableView.setTranslatesAutoresizingMaskIntoConstraints(false) //Don't forget this line
var leftSideConstraint = NSLayoutConstraint(item: theTableView, attribute: .Left, relatedBy: .Equal, toItem: view, attribute: .Left, multiplier: 1.0, constant: 0.0)
var rightSideConstraint = NSLayoutConstraint(item: theTableView, attribute: .Left, relatedBy: .Equal, toItem: view, attribute: .Right, multiplier: 1.0, constant: 0.0)
view.addConstraints([leftSideConstraint, rightSideConstraint])
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MySampleCell") as! UITableViewCell
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.size.width
let screenHeight = screenSize.size.height
theTableView.frame = CGRectMake(0, 0, screenWidth, screenHeight)
cell.frame = CGRectMake(0, 0, screenWidth - 20, 44)
return cell
}
Вам не нужно устанавливать кадр ячейки. Он всегда будет заполнять таблицу. Возможно, рама вашего табличного представления ошибочна. – rmaddy
Как это может быть неправильно, если я устанавливаю его в рамки представления? –
Почему вы устанавливаете рамку представления таблицы снова и снова внутри метода cellForRowAtIndexPath? Установите его один раз в нужном месте. – rmaddy