TableView圆angular和阴影

我有一个三行的tableview。 我正在试图使表行具有圆angular,也是整个tableview周围的阴影效果。 出于某种原因,我不能让tableview都有圆angular和阴影效果,但是如果我注释掉其中一个特性的代码,我可以单独做它们。 这是我正在使用的代码:

//this is for shadow effect tableView.backgroundColor = UIColor.clearColor() tableView.layer.shadowColor = UIColor.darkGrayColor().CGColor tableView.layer.shadowOffset = CGSize(width: 2.0, height: 2.0 tableView.layer.shadowOpacity = 1.0 tableView.layer.shadowRadius = 2 // This is for rounded corners tableView.layer.cornerRadius = 10 tableView.layer.masksToBounds = true 

您可以将表视图添加到容器视图,并将投影添加到该容器视图:

 let containerView:UIView = UIView(frame:CGRect(x: 10, y: 100, width: 300, height: 400)) self.tableView = UITableView(frame: containerView.bounds), style: .Plain) containerView.backgroundColor = UIColor.clearColor() containerView.layer.shadowColor = UIColor.darkGrayColor().CGColor containerView.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) containerView.layer.shadowOpacity = 1.0 containerView.layer.shadowRadius = 2 // This is for rounded corners self.tableView.layer.cornerRadius = 10 self.tableView.layer.masksToBounds = true self.view.addSubview(containerView) containerView.addSubview(self.tableView) 

编辑

Swift 3.0:

 let containerView:UIView = UIView(frame:CGRect(x: 10, y: 100, width: 300, height: 400)) self.tableView = UITableView(frame: containerView.bounds, style: .plain) containerView.backgroundColor = UIColor.clear containerView.layer.shadowColor = UIColor.darkGray.cgColor containerView.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) containerView.layer.shadowOpacity = 1.0 containerView.layer.shadowRadius = 2 self.tableView.layer.cornerRadius = 10 self.tableView.layer.masksToBounds = true self.view.addSubview(containerView) containerView.addSubview(self.tableView) 

在这里输入图像说明

RDC的答案是好的,但对我来说,结果没有解决我的情况,遵循是我的修复:

 //for table view border tableView.layer.borderColor = UIColor .grayColor().CGColor tableView.layer.borderWidth = 1.0 //for shadow let containerView:UIView = UIView(frame:self.tableView.frame) //dont use clear color,fit blue color containerView.backgroundColor = UIColor.blueColor() //shadow view also need cornerRadius containerView.layer.cornerRadius = 10 containerView.layer.shadowColor = UIColor.lightGrayColor().CGColor containerView.layer.shadowOffset = CGSizeMake(-10, 10); //Left-Bottom shadow //containerView.layer.shadowOffset = CGSizeMake(10, 10); //Right-Bottom shadow containerView.layer.shadowOpacity = 1.0 containerView.layer.shadowRadius = 2 //for rounded corners tableView.layer.cornerRadius = 10 tableView.layer.masksToBounds = true self.view.addSubview(containerView) self.view.addSubview(tableView) 

感谢@beyowulf

我已经用Swift 2.2升级到了

  • 设置边框
  • 圆angular
  • 将阴影投影到表格视图

     //for table view border tableView.layer.borderColor = UIColor .grayColor().CGColor tableView.layer.borderWidth = 1.0 //for shadow let containerView:UIView = UIView(frame:self.tableView.frame) containerView.backgroundColor = UIColor.clearColor() containerView.layer.shadowColor = UIColor.lightGrayColor().CGColor containerView.layer.shadowOffset = CGSizeMake(-10, 10); //Left-Bottom shadow //containerView.layer.shadowOffset = CGSizeMake(10, 10); //Right-Bottom shadow containerView.layer.shadowOpacity = 1.0 containerView.layer.shadowRadius = 2 //for rounded corners tableView.layer.cornerRadius = 10 tableView.layer.masksToBounds = true self.view.addSubview(containerView) containerView.addSubview(tableView) 

结果看起来像

在这里输入图像说明