IT

UITableView 명확한 배경

lottoking 2020. 9. 6. 10:21
반응형

UITableView 명확한 배경


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에 실제로 투명한 배경이 있는지 확인하십시오. 여기에 이미지 설명 입력


넣어 넣어 :

cell.backgroundColor = [UIColor clearColor];

이 섹션의 :

cellForRowAtIndexPath

이것은 대답 많은면에서 잘못되었습니다.

아래 대리자 메서드를 구현해야합니다.

    - (void)tableView:(UITableView *)tableView  willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [cell setBackgroundColor:[UIColor clearColor]];
}

셀이 시작된 이후부터 셀이 수정하기 전에 흰색 배경이 깜박입니다 (더 느린 장치에서).

이 방법을 사용하면 문제가 해결됩니다!


먼저 backgroundView를 nil로 설정하십시오.

[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];

iOS7의 문서 변경인지 또는 항상 존재하는 것이 배경색에 영향을 끼칠 가능성이 확실하지 않지만 UITableView 클래스 참조 @property backgroundView

"테이블 뷰의 배경색을 설정 비용이 속성을 nil로 설정해야합니다."

편집 : 수정 된 코드 구문


실제로 셀 배경색을 변경하는 공식적으로 올바른 위치는 문서 ( UITableViewCell Class Reference ) 에 따라 올라갑니다 .

미리 정의 된 셀을 사용하든 사용자 지정 셀을 사용하든 backgroundView 속성을 사용하거나 상속 된 backgroundColor 속성을 변경하여 셀의 배경을 변경할 수 있습니다. iOS 7에서 셀은 기본적으로 흰색 배경을 가지고 있습니다. 이전 버전의 iOS에서 셀은 주변 테이블보기의 배경색을 상속합니다. 셀의 배경색을 변경하려면 테이블 뷰 델리게이트의 tableView : willDisplayCell : forRowAtIndexPath : 메소드에서 변경하십시오.


이것은 매우 실망스러운 문제입니다. 내 현재 솔루션은 다음과 같습니다.

이것을 UITableViewCell하위 클래스에 추가하십시오 .

- (void)didMoveToSuperview {
    [super didMoveToSuperview];

    self.backgroundColor = [UIColor clearColor];
}

신속한 3, 4 및 5

cell.backgroundColor = UIColor.clear

이것은 iOS7 +에서 나를 위해 일했습니다.

self.tableView.backgroundColor =[UIColor blueColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = nil;`

그리고 나서 cellForRowAtIndexPath:

cell.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() 

}

내 앱에서 .NET을 업데이트 할 때 수업에서을 색상 으로 설정해야 backgroundColor했습니다 .UITableViewCell[UIColor clearColor]iOS 7


시험

[myTable setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[myTable setSeparatorInset:UIEdgeInsetsZero];

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 viewDidLoad() {
        super.viewDidLoad()
        tableView.backgroundColor = UIColor.clear
}

// Fix iOS 7 clear backgroundColor compatibility 
// I Think this two lines only are enough

cell.backgroundColor = [UIColor clearColor];
cell.selectedBackgroundView = [[UIView new] autorelease];

세트

tableView.backgroundColor = [UIColor clearColor];

viewDidLoad에서.

이것이 작동하지 않으면 다음을 시도하십시오.

tableView.backgroundView = nil;

신속한 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
}

참고 URL : https://stackoverflow.com/questions/18753411/uitableview-clear-background

반응형