buzzmind
buzzmind

Reputation: 109

Why is the width of cell in UItableview not same as width of screen in simulator?

The table cell is running shorter than it is supposed to be. (I use different background colour which shows difference width) The setting of cell is custom (only row height is change to 140). The playerCell class has nothing but some IBoutlets. Thanks.

(image: storyboard

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var count: Int
    if playerBank.count == 0
    {
        count = 1
    }
    else{
        count = playerBank.count
    }

    return count
}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! playerCell


    if playerBank.isEmpty{
        let p = Player()
       playerBank = setInvalidPlayer(pBank: p, userInput: userInputPlayerName)

    }


    let playerInBank: Player = playerBank[indexPath.row]

        passImageUrl = cell.setPlayerCell(p: playerInBank)
        urlBank.append(passImageUrl)

    let bgColorView = UIView()
    bgColorView.backgroundColor = UIColor.red
    cell.selectedBackgroundView = bgColorView

    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    myIndex = indexPath.row
    DispatchQueue.main.async {
        self.performSegue(withIdentifier: "ShowPlayerInfo", sender: self)
    }
}

Storyboard

Upvotes: 1

Views: 197

Answers (1)

Josh Hrach
Josh Hrach

Reputation: 1396

My first guess is that, while you have a custom cell with custom outlets, that there are no layout constraints in place. So the items that you put into the storyboard are retaining their intrinsic values and not adapting to the device screen size.

If you add constraints to those outlets, especially enough to where the width of the cell can be determined based on the rest of the elements, then your cell should display full width.

Upvotes: 1

Related Questions