2017-12-18 159 views
0

我有一個UITableViewController與靜態表格單元格。使UIImage clipsToBound通過UITableViewCell

而我試圖用這個單元格UIImageView和這個圖像clipToBounds,但它不工作。

這是我想要做的一個示例。

enter image description here

但是當我做一個UITableView並設置UIImage的clipToBoundsTRUE

結果是:

enter image description here

我只是需要一種方法來使UIImageView喜歡第一個圖像無論如何與UITableView單元格?

,這是我的UIImageView約束:

enter image description here

,這裏是我的代碼:

class ProfileTableViewController: UITableViewController { 

    @IBOutlet weak var userImage: UIImageView! 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Uncomment the following line to preserve selection between presentations 
     // self.clearsSelectionOnViewWillAppear = false 

     // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
     // self.navigationItem.rightBarButtonItem = self.editButtonItem() 



     // image view 

     self.userImage.layer.cornerRadius = self.userImage.frame.width/2 
     self.userImage.clipsToBounds = true 




    } 

// MARK: - 表視圖的數據源

override func numberOfSections(in tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return 3 
} 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    var number = 0 

    if section == 0 
    { 
     number = 1 
    }else if section == 1 
    { 
     number = 4 
    }else if section == 2 
    { 
     number = 1 
    } 

    return number 
} 


override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 100 
} 

} 
+0

據我可以看到圖像被裁剪好(如果白色背景代表一個單元格和視圖的灰色其餘部分)。你應該檢查約束和UIImageView定位。 – Adamsor

+0

你能告訴我你輸出圖像中的哪一部分是tableViewCell。我的意思是全圖像或白色部分 –

+0

@Adamsor我更新了我的問題檢查顯示圖像約束的最後一個圖像 – Muhammed

回答

2

我找到了解決辦法,當我加入此方法,並添加自定義區段標題

,並給它clipToBounds =假

問題解決了

我剛剛加入:

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
     let view = UIView() 
     view.clipsToBounds = false 

     return view 
    } 

,它的工作完美:))

感謝所有試圖幫助我

1

爲什麼clipsToBounds = true ? 如果圖像必須outside細胞,那麼我想你想的正好相反:

yourView.clipsToBounds = false 
+0

我做到了,但仍然沒有工作 – Muhammed

1

剛剛創建圖像視圖插座讓拐角半徑itswidth/2(確保高度和寬度相同的大小),並夾界定爲真。例如:

imageView = imageView.frame.size.width/2; 
imageView.clipsToBounds = true; 
+0

仍然無法正常工作 – Muhammed

+0

顯示我們的代碼的東西 –

+0

檢查最後編輯 – Muhammed

0

這可能會解決您的問題。在indexPath

細胞用於行
let height = CGFloat(cell.frame.size.height-10) 
let leading = (cell.frame.size.width - height)/2 
let top = CGFloat(18) 

let myImage = UIImageView(frame: CGRect(x: leading, y: top, width: height, height:height)) 
myImage.layer.masksToBounds = true 
myImage.layer.cornerRadius = (height)/2 
cell.contentView.addSubview(myImage) 

// OR

cell.myImage.layer.cornerRadius = cell.myImage.frame.width/2 
cell.myImage.clipsToBounds = true