728x90
๋ฐ์ํ
์ด๋ ๊ฒ ๋ณ์๋ค์ ์ ์ธํด๋๊ณ
class Main: UITableViewController {
var headerheight = 215
var headerheights = [Int : Int]()
var moreless = "more"
var moreindex = 100
var morearray = [Int]()
์ฐ์ ์ ์์ ๋ฒํผ์ addTarget ํด์ค๋ค. action์์๋ ์ค์ ํด๋์ ํจ์๋ฅผ ์ง์ด๋ฃ๋๋ค.
cell.morebtn.addTarget(self, action:#selector(Main.more(sender:)) , for: UIControl.Event.touchUpInside)
์ค์ ํด๋์ more์ด๋ผ๋ ํจ์ ์์ ๋์ด๋ฅผ ์์๋ด๋ ํจ์ heightForView๋ฅผ ์ด์ฉํด ๊ธธ์ด๋ฅผ ์์๋ด๊ณ sender.tag๋ฅผ ์ด์ฉํด ๋ฒํผ์ index
@objc func more(sender: UIButton){
moreindex = sender.tag //moreindex๋ฅผ ์ ํํ ํ๊ทธ๋ก ์ค์ ํด์ค๋ค.
morearray.append(moreindex) //morearray์ ์ ํ๋ ํ๊ทธ ์ฆ moreindex๋ฅผ ๋ฃ์ด์ค๋ค.
if sender.currentTitle == "more"{ //more์ด๋ผ๊ณ ์ค์ ๋์ด์์ผ๋ฉด
let Font = UIFont.systemFont(ofSize: 12) //ํฐํธํฌ๊ธฐ ์ธํ
let height = heightForView(text:"์์ ์ ๊ธ", font: Font, width: ํ
์คํธ๊ฐ๋กํฌ๊ธฐ) //text์
headerheight = Int(height) //์๋ ํค๋ํค์ดํธ๋ฅผ ๋ฐ๊ฟ์ค
headerheights.updateValue(headerheight, forKey: moreindex) //๊ทธ๋ฆฌ๊ณ ํค๋ํค์ดํธ์ ์ ํ๋ moreindex๋ฅผ ๋ฐธ๋ฅ ํค๊ฐ์ผ๋ก ๋ฃ์ด์ค๋ค.
tableView.reloadData() //ํ
์ด๋ธ๋ทฐ๋ฅผ ์๋ก๊ณ ์นจํด์ค.
}
}
๋์ด๋ฅผ ์์๋ด๋ ํจ์
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
ํค๋๋์ด๋ฅผ ์ด์๊ฐ์ด ์ค์ ํด์ค๋ค.
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
for i in morearray{ //morearray์ค์
if i == section { //์น์
๊ณผ ๊ฐ์์ ๊ฐ ์๋ค๋ฉด
return CGFloat(headerheights[section] ?? 215) //๊ฑฐ๊ธฐ๋ ์ ํด๋์ ํค๋๋์ด๋ก ๋ฐ๊ฟ์ค
}
}
return 215 //์๋ ๊ฑด ์๊ธฐ๊ฐ ์ ํด๋์ ๋์ด๋ก ํด๋๋๋ค.
}
์ด์ ๊ฐ์ด ์ค์ ํด๋์ผ๋ฉด ์ด๋ ๊ฒ ๋๋ค!
728x90
๋ฐ์ํ
'๐ iOS > UI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS/UI] UITableView ์์ฒด Height ์ค์ ํ๊ธฐ (NSLayoutConstraint) (0) | 2019.12.12 |
---|---|
[iOS] CollectionViewCell ์ข์ธก์ผ๋ก ์ ๋ ฟ๋ผ๊ธฐ (0) | 2019.12.11 |
[iOS/UI] UIAlertController ๊ธ์จ์๋ฐ๊พธ๊ธฐ (0) | 2019.12.11 |
[iOS/UI] UILabel ํน์ ๋ถ๋ถ์ ๋ฐ์ค ๊ธ๊ธฐ (0) | 2019.12.04 |
[iOS/UI] UITabbar ๊ฐ์ด๋ฐ์ ๋ฒํผ ๋ฃ๊ธฐ (0) | 2019.11.26 |
๋๊ธ