2017-04-18 1 views
2

4면 (1 tableView 4 tableViewCell)으로 그림자를 추가하고 싶습니다. 마지막 셀은 3면 (왼쪽, 오른쪽, 아래)에 그림자를 추가하지만 마지막 셀을 제외하고는 다른 셀에 추가하고 싶습니다. 2면 (왼쪽, 오른쪽)에 그림자가 추가되었습니다. 나는이 코드를 싱글 톤과 확장 UIView로 작성한다. 내가 cellForRow이 코드를 호출tableviewcell swift에서 그림자를 추가하는 방법 3?

func dropShadowAtLeftAndRight() { 

    self.layer.masksToBounds = false 
    self.layer.shadowColor = UIColor.black.cgColor 
    self.layer.shadowOpacity = 0.5 
    self.layer.shadowOffset = CGSize(width: 0, height: 0) 
    self.layer.shadowRadius = 2 
    let shadowRect: CGRect = self.layer.bounds.insetBy(dx: 0, dy: 4); // inset top/bottom 
    self.layer.shadowPath = UIBezierPath(rect: shadowRect).cgPath 

    self.layer.rasterizationScale = UIScreen.main.scale 
    self.layer.shouldRasterize = true 

} 

: 마지막 셀을 제외한 다른 셀에 대한

func dropShadowAtBottom() { 

    self.layer.masksToBounds = false 
    self.layer.shadowColor = UIColor.black.cgColor 
    self.layer.shadowOpacity = 0.2 
    self.layer.opacity = 0.3 
    self.layer.shadowOffset = CGSize(width: 0, height: 2) 
    self.layer.shadowRadius = 2 
    self.clipsToBounds = false 

} 

이 : 마지막 셀이

if(indexPath.row == currentOrderHistory.listOrderItems.count - 1){ 
      cell.bodyView.dropShadowAtBottomOnly() 

     }else{ 
      cell.bodyView.dropShadowAtLeftAndRight() 
     } 
     return cell 

이제이 코드는 여전히 작동하지만입니다 완벽하지는 않습니다. 셀 사이에 공백이 있습니다.

picture

난 그냥 그들을 연결 만들고 싶어.

+2

달성하고자하는 이미지를 게시하면 도움이 될 것입니다. –

+0

달성하고자하는 것을 공유하려고합니다. –

+0

이미 이미지를 추가했습니다. "그림"텍스트를 klik주세요 –

답변

0

IB에서 분리기를 제거해 보셨습니까? 구분 없음

또는 다른 방법

enter image description here

은, 난 당신이 줄 dropShadowAtLeftAndRight()의 문제에 직면 생각

self.tableView.separatorColor = UIColor.clear 
+0

감사합니다.하지만 아무 것도 바꿀 필요가 없습니다. –

0

반투명하기 위해 분리 색상을 설정 설정

let shadowRect: CGRect = self.layer.bounds.insetBy(dx: 0, dy: 4); 

rect이 내 경우에는 (0.0, 4.0, 375.0, 36.0)과 같습니다. 상위 4 픽셀에 흰색 공간과 하단도 4 픽셀 공백

그래서 왼쪽과 오른쪽 그림자 4에서 시작하고 높이입니다 (36)

let shadowRect: CGRect = self.layer.bounds.insetBy(dx: 0, dy: 0); 
같이 설정해야이 문제를 해결하기 위해
+0

예.하지만 0으로 변경하면 모든 셀에 그림자가 생깁니다. –

+0

"dropShadowAtBottom"메서드 만 사용하고 셀의 왼쪽에서 오른쪽으로 두 개의보기를 추가 할 수 있습니다. 왼쪽 및 오른쪽 셰이드를 제공합니다. –

관련 문제