iOS 7이 공식적으로 출시되지 않았다는 것을 알고 있으며 이에 대해 논의해서는 안되지만이 문제를 해결하려고 미쳐 가고 있습니다. iOS 6에서는 테이블 뷰가 투명하고 멋지게 보입니다. iOS 7을 처음 실행하면 배경이 흰색입니다.
표 backgroundColor, 셀 색상 등을 UIColor clearColor로 만들려고 시도했지만 변경 사항이 없습니다.
이 문제를 해결하는 방법?
iOS 7이 공식적으로 출시되지 않았다는 것을 알고 있으며 이에 대해 논의해서는 안되지만이 문제를 해결하려고 미쳐 가고 있습니다. iOS 6에서는 테이블 뷰가 투명하고 멋지게 보입니다. iOS 7을 처음 실행하면 배경이 흰색입니다.
표 backgroundColor, 셀 색상 등을 UIColor clearColor로 만들려고 시도했지만 변경 사항이 없습니다.
이 문제를 해결하는 방법?
답변:
// Fix for iOS 7 to clear backgroundColor
cell.backgroundColor = [UIColor clearColor];
cell.backgroundView = [[UIView new] autorelease];
cell.selectedBackgroundView = [[UIView new] autorelease];
cellForRowAtIndexPath에서
또한 tableview에 실제로 투명한 배경이 있는지 확인하십시오 (스토리 보드에서).
먼저 backgroundView를 nil로 설정하십시오.
[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];
이것이 iOS7 문서의 변경인지 또는 항상 존재했고 배경색에 영향을 미치지 않았는지 확실하지 않지만 UITableView 클래스 참조 @property backgroundView
"테이블 뷰의 배경색을 설정하려면이 속성을 nil로 설정해야합니다."
편집 : 수정 된 코드 구문
이것은 대답되었지만 많은면에서 잘못되었습니다.
아래 대리자 메서드를 구현해야합니다.
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
셀이 렌더링 된 이후이므로 cellForRowAtIndexPath에 수정 사항을 넣을 수 없으며 배경이 지워지기 전에 흰색 배경이 깜박입니다 (더 느린 장치에서).
이 위임 방법을 사용하면 문제가 해결됩니다!
실제로 셀 배경색을 변경하는 공식적으로 올바른 위치는 문서 ( UITableViewCell Class Reference ) 에 따라 다릅니다 .
미리 정의 된 셀을 사용하든 사용자 지정 셀을 사용하든 backgroundView 속성을 사용하거나 상속 된 backgroundColor 속성을 변경하여 셀의 배경을 변경할 수 있습니다. iOS 7에서 셀은 기본적으로 흰색 배경을가집니다. 이전 버전의 iOS에서 셀은 주변 테이블보기의 배경색을 상속합니다. 셀의 배경색을 변경하려면 테이블 뷰 델리게이트의 tableView : willDisplayCell : forRowAtIndexPath : 메소드에서 변경하십시오.
이것은 매우 실망스러운 문제입니다. 내 현재 솔루션은 다음과 같습니다.
이것을 UITableViewCell
하위 클래스에 추가하십시오 .
- (void)didMoveToSuperview {
[super didMoveToSuperview];
self.backgroundColor = [UIColor clearColor];
}
이 코드 스 니펫 시도
cell.contentView.backgroundColor = [UIColor clearColor];
cell.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5];
이것은 내가 각 셀에 대한 명확한 배경색과 테이블 자체에 대한 명확한 색상을 편집 할 때만 저에게 효과적이었습니다 .. 둘 다 프로그래밍 방식으로
테이블의 선명한 색상을 설정하려면 :
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
initMenu()
myTableView.backgroundColor = UIColor.clearColor()
}
셀의 색상을 설정하려면 :
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath)
cell.backgroundColor = UIColor.clearColor()
return cell
}
좋은 것 하나. UITable의 기본 색상이 흰색 인 것 같습니다 (이유를 모르겠습니다).
그러나 그것을 더 잘 바꾸십시오.
첫 번째 세트
tableView.backgroundColor = [UIColor clearColor];
두 번째 세트
tableCell.backgroundColor = [UIColor clearColor];
테이블보기 @IBOutlet weak var yourTable : UITableView를위한 IB Outlet 생성!
뷰로드에서
override func viewDidLoad() {
yourTable.delegate = self
yourTable.dataSource = self
yourTable.backgroundColor = UIColor.clearColor()
}
Cell의 색상을 지우려면 다음을 수행하십시오.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
cell.backgroundColor = UIColor.clearColor()
}
제 경우에는 xib를 사용하여 셀을 만들었습니다. xcode5의 인터페이스 빌더가 clearColor를 cell.backgroundColor로 설정하는 데 문제가있는 것 같습니다.
내가해야 할 일은 실제로 설정하는 것이 었습니다.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get the cell from the nib
//then force the backgroundColor
cell.backgroundColor = [UIColor clearColor]
return cell;
}
신속한 3
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath)
cell.backgroundColor = .clear
cell.backgroundView = UIView()
cell.selectedBackgroundView = UIView()
return cell
}
backgroundView
을 명확한 것으로 설정하려고 했습니까?