UILabel
을 숨기려고합니다!UILabel Swift 숨기기 방법 : 레이블이 숨김으로 설정된 경우 레이블이 테이블보기 컨트롤러에 공간을 만듭니다.
저는 UIlabel
, TableView
& Segmented Control
을 포함하는 테이블 뷰 컨트롤러를 사용했습니다.
두 개의 범주 중 하나는 데이터 & 빈 데이터입니다.
사용자가 데이터를 클릭하면 데이터가 TableView에 표시됩니다. & 레이블이 숨겨져 야합니다.
사용자가 빈 -> 데이터를 숨길 경우 & 레이블이 나타납니다.
나는 그렇게 할 수 ...하지만 라벨 (그것은 간격 만들고있다) 여기에 문제를하고있다
문제 :있을 때
레이블 테이블보기의 상단에 틈을 만들고있다 데이터.
질문 :이 숨겨진 경우
어떻게 라벨을 제거합니다.
레이블을보기의 중앙에 표시하고 싶습니다 (사용자에게 친숙 함).
코드 :
// MARK: - Properties
let sectionHeaders = ["One","Two"];
var rowValues = [["First","Second","Three"],["four","five","six"]];
// MARK: - IBOutlets
@IBOutlet weak var noDataLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Table View"
noDataLabel.isHidden = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
if (rowValues.isEmpty) {
return 0
} else {
return sectionHeaders.count
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if (rowValues.isEmpty) {
return 0
} else {
return rowValues[section].count
}
}
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sectionHeaders[section]
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = rowValues[indexPath.section][indexPath.row];
return cell
}
// MARK: - IBActions
@IBAction func segmentButtonPressed(_ sender: UISegmentedControl) {
if sender.selectedSegmentIndex == 0 {
if rowValues.isEmpty {
noDataLabel.isHidden = true
rowValues = [["First","Second","Three"],["four","five","six"]];
}
} else {
rowValues.removeAll()
noDataLabel.isHidden = false
}
tableView.reloadData()
}
IBAction
에서viewDidLoad
당신이 자동 레이아웃 사용하고 당신에
? – iMuzahid
@ Md.MuzahidulIslam 아니요, 자동 레이아웃을 사용하지 않습니다 – Karen