UITableViewCell阴影

时间:2017-06-05 10:40:05

标签: ios swift uitableview

我试图实现这个设计,但我浏览过的所有解决方案都不起作用,而且据我所知,这可能是因为单元格与UITableView之间的间距。
这是设计:

enter image description here

所以基本上我想要实现的是从所有4个边都有阴影以及每个细胞和下一个细胞之间的间距。 感谢

编辑: 这是我试过的代码。

let shadowSize : CGFloat = 5.0
let shadowPath = UIBezierPath(rect: CGRect(x: -shadowSize / 2,
                                           y: -shadowSize / 2,
                                           width: self.avatarImageView.frame.size.width + shadowSize,
                                           height: self.avatarImageView.frame.size.height + shadowSize))
self.avatarImageView.layer.masksToBounds = false
self.avatarImageView.layer.shadowColor = UIColor.black.cgColor
self.avatarImageView.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
self.avatarImageView.layer.shadowOpacity = 0.5
self.avatarImageView.layer.shadowPath = shadowPath.cgPath

编辑2: 我想指出我所有的单元格对象都在容器UIView中。以上所有代码都适用于此UIView。

2 个答案:

答案 0 :(得分:8)

您必须在UIView内加UITableViewCell UITableViewCell才能使用该视图。

FOR THE SHADOW我在viewDummy.addShadow() //use from any view extension UIView { func addShadow(){ self.layer.shadowColor = UIColor.blackColor().CGColor self.layer.shadowOpacity = 0.5 self.layer.shadowRadius = 2.0 self.layer.shadowOffset = CGSizeMake(1.0, 1.0) } } 类使用此功能: -

$time = strtotime('2015-06-04 00:00:00'); // convert to datetime
$date = date('Y-m-d H:i:s',$time);        // change format

答案 1 :(得分:1)

func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - > UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.layer.shadowOffset = CGSize(width: 0, height: 0)
    cell.layer.shadowColor = UIColor.black.cgColor
    cell.layer.shadowRadius = 5

    cell.layer.shadowOpacity = 0.40
    cell.layer.masksToBounds = false;
    cell.clipsToBounds = false;
    return cell
}