2017-02-06 2 views
0

UITableView에 투명한 섹션 헤더가 있습니다.이 섹션에서는 셀이 뒤에 스크롤되도록해야하지만 셀 대신 테이블 뷰 뒤에있는 배경 이미지를 표시해야합니다. 섹션 헤더에 일종의 클리핑 마스크를 적용하여 그 아래에있는 뷰를 투명하게 만들거나 헤더의 배경으로 배경 이미지의 적절한 부분을 표시하고 헤더가 움직일 때 따르는 방법이 필요합니다.배경을 제외한 UIView 아래의 모든 뷰를 마스크합니다.

나는이 How to mask UITableViewCells underneath a UITableView Transparent Header을 보았지만 광고 된대로 작동하지 않으며 일반적으로 나쁜 구현입니다. 섹션 헤더의 서브 클래스에서

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 
    CGContextFillRect(context, self.frame); 
    CGContextSetBlendMode(context, kCGBlendModeClear); 
} 

, 그러나 이것은 단지 검은 배경보기를 보여줍니다

나는 또한이 시도했다. 더 설명이 필요하면

, 여기에 내가 무엇을 가지고 :

http://imgur.com/a/YM5Us

을 여기에 내가 달성하고자하는 것입니다 :

http://imgur.com/a/o9CgL

+0

이 질문에 대해 두 가지가 나에게 충격을줍니다. 첫 번째는 아마도 뷰 계층 구조가 모두 잘못되었다는 것입니다. 두 번째는 SpriteKit 등을 사용해야하는 UIKit에서 고급 그리기를 시도하는 것처럼 들리는 것입니다. 배경을 보여주기 위해 다른보기를 숨기려는 시도가 마음에 들지 않습니다. 배경 이미지를 가져 와서 다시 부동 뷰 뒤에 배치하는 것이 좋습니다. 경계를 사용하여 오프셋 할 수 있습니다. 프레임과 경계 조작의 차이점을 연구합니다. – rage

+0

어쩌면 나는 그것을 더 잘 설명해야한다 : 문제는 UITableView의 투명한 섹션 헤더로, 셀은 아래로 스크롤 할 수 있지만 셀 대신 배경을 표시해야한다. 나는 원래의 질문에이 정보를 추가하여 설명을 추가 할 것이다. – damjandd

+1

좋아, 그럼 내 제안과 함께 갈거야 : 배경 이미지를 다시 받아 섹션 헤더보기에 적용하고 경계를 사용하여 오프셋. – rage

답변

0

내가 비슷한 작업을 완료했습니다 게임에서. SpriteKit은 내장 기능으로이 기능을 제공하므로 뛰어난 성능을 제공합니다.

SpriteKit과 UIKit을 혼합 할 수 있지만 SKTree는 투명 배경을 가질 수 없으므로 SpriteKit을 배경으로 사용합니다 (&).

제 의견으로는 여기 create a custom header view 또는 change the displaying of the cell입니다.

+0

이미 사용자 정의 헤더보기를 사용하고 있습니다. 문제는 아닙니다. 또한 SpriteKit을 포함하는 것은 그리 좋지 않습니다. 문제에 대한 추가 정보가 필요하면 원래 질문에 첨부 한 gif를 참조하십시오. – damjandd

관련 문제