gpt4 book ai didi

ios - Swift:UIView 出现在 UITableView 单元格中

转载 作者:搜寻专家 更新时间:2023-11-01 05:37:35 25 4
gpt4 key购买 nike

我在将我创建的 UIView 放入特定 UITableView 单元格时遇到问题。这是我的代码:

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

//MARK : Properties
var tableView = UITableView()
var items: [String] = ["Age", "Gender", "Smoking Hx", "Occup. -Ag", "Family Hx", "Chronic Lung Disease Radiology", "Chronic Lung Disease Hx", "Nodule Border", "Nodule Location", "Satellite Lesions", "Nodule Pattern Cavity", "Nodule Size"]
var navigationBar = NavigationBar()
var gender = GenderView()
var maleIcon = MaleIconView()

override func viewDidLoad() {
super.viewDidLoad()

//Create TableView
tableView.frame = CGRectMake(0, self.view.bounds.height * 0.097, self.view.bounds.width,
self.view.bounds.height - self.view.bounds.height * 0.097);
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(tableView)



//Create Navigation Bar with custom class
self.navigationBar = NavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height * 0.097))
self.view.addSubview(navigationBar)

}



override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}




func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count
}


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell

cell.textLabel?.text = self.items[indexPath.row]

//Cell wont turn grey when selected
cell.selectionStyle = UITableViewCellSelectionStyle.None

//Want to add UIView male Icon in first row
if(indexPath.row == 0){
maleIcon = MaleIconView(frame: CGRect(x: 0, y: 0, width: 55, height: 55))
maleIcon.center.x = cell.center.x + cell.center.x * 0.5
maleIcon.center.y = cell.contentView.center.y
maleIcon.layer.cornerRadius = 0.5 * maleIcon.bounds.size.width
//maleIcon.layer.borderWidth = 3.0
cell.addSubview(maleIcon)
}


return cell

}

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

return self.view.bounds.height * 0.15

}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("You selected cell #\(indexPath.row)!")

}
}

也许问题存在于 MaleIconView() 中?这是代码:

class MaleIconView: UIView {

var maleView = UIView()

override init(frame: CGRect) {
super.init(frame: frame)
self.frame = frame
setUpView()
}

func setUpView(){

maleView.frame = CGRectMake(0, 0, self.bounds.width, self.bounds.height)
maleView.alpha = 1
maleView.backgroundColor = UIColor.blackColor()
maleView.layer.cornerRadius = 0.5 * maleView.bounds.size.width
self.addSubview(maleView)

}



func hide(){
self.removeFromSuperview()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}

我试图让 UIView 出现在单元格 0 的右侧。还有一个问题是 indexPath 全部关闭,我认为这可能是 UIView 出现在多个单元格中的原因。提前致谢!

最佳答案

这是可以帮助您解决问题的代码。我对您可能尝试实现的方式做了一些假设。但这对您来说应该是一个好的开始。

https://www.dropbox.com/sh/2ilyfnc1pqurjfd/AAC2rU-zlvUtjdKYV33JrQJQa?dl=0

我还强烈建议您为各种 View 尺寸使用自动布局,而不是硬编码奇怪的偏移量。可能很难开始。但从长远来看,这绝对是值得的!

关于ios - Swift:UIView 出现在 UITableView 单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com