2012-04-09 3 views
1

이 질문으로 며칠 째 진행하지만 진행되지는 않습니다. 내가 뭘하고 싶은지 꽤 간단 생각해 :Xcode에서 그룹화 된 셀의 너비를 설정하십시오.

나는 그 셀이 화면의 전체 너비 (320)를 차지하므로 일반 TableView에서 사용하는 320x60의 이미지를 가지고 있습니다. TableView에서 그룹화 된 셀의 너비는 300이고 좌우의 여백/여백은 10입니다.

어떻게 든 그 인셋/여백을 제거하고 그룹화 된 셀을 320 너비로 만들 수 있습니까? 콘텐츠 삽입물을 왼쪽으로 -10으로 설정하려고했습니다. 그것은 왼쪽 여백을 "제거"하지만 여전히 단지 300 광폭입니다. 스토리 보드의 XML 편집도 시도했지만 (iOS 5 - Storyboards로 작업 중) 기쁨은 없습니다. Adjust cell width in grouped UITableView

PS 내가 배경 이미지가 좋은 그림자를 포함로 폭을 변경하려는! :

이 비슷한 질문이 여기에 더는 불가능하지 않기 때문에 대답있어, hopfully 일이 2 년 이상으로 변경, 내가 읽은 그림자의 과도한 사용은 성능 문제를 의미 할 수 있습니다. 또한 그림자의 테두리가 5px만큼 넓어서 표준 너비를 사용하면 폭이 ~ 10px가됩니다.

도움 주시면 감사하겠습니다.

답변

3

답답한 해결책은 테이블 뷰를 340 픽셀 너비로 만들고 화면의 왼쪽 가장자리에서 10 픽셀 떨어진 곳으로 만듭니다.

개인 클래스의 변화하는 속성을 포함하는 솔루션은 UITableViewCell 서브 클래스를 만들고, 그 layoutSubviews 메소드를 오버라이드 (override)하는 것입니다. 하위보기를 기록 할 때 다음을 찾을 수 있습니다.

"<UIGroupTableViewCellBackground: 0x95246b0; frame = (9 0; 302 45); autoresize = W; layer = <CALayer: 0x95226b0>>", 
"<UITableViewCellContentView: 0x92332d0; frame = (10 0; 300 43); layer = <CALayer: 0x9233310>>", 
"<UIView: 0x95248c0; frame = (10 0; 300 1); layer = <CALayer: 0x951f140>>" 

하위 뷰를 사용하고 전체 범위를 채우면 어떻게됩니까?

- (void)layoutSubviews; 
{ 
    // By default the cell bounds fill the table width, but its subviews (containing the opaque background and cell borders) are drawn with padding. 
    CGRect bounds = [self bounds]; 

    // Make sure any standard layout happens. 
    [super layoutSubviews]; 
    // Debugging output. 
    NSLog(@"Subviews = %@", [self subviews]); 
    for (UIView *subview in [self subviews]) 
    { 
     // Override the subview to make it fill the available width. 
     CGRect frame = [subview frame]; 
     frame.origin.x = bounds.origin.x; 
     frame.size.width = bounds.size.width; 
     [subview setFrame:frame]; 
    } 
} 

iOS 5.1 시뮬레이터의 특정 순간에이 기능이 작동합니다. 이제 iOS의 일부 버전이 이러한 클래스를 재구성하여이 메소드가 테이블 레이아웃을 망가 뜨리게됩니다. UITableViewCellContentView의 속성을 변경하면 앱이 거부 될 수 있습니다. 프레임 만 수정 중이더라도. 그럼, 당신의 세포가 테이블 너비를 채우게하려면 얼마나 필요합니까?

+0

디자이너 관점에서 보면 필수입니다. "깔끔한"방식으로 가능하지 않은 것으로 보이는 경우 너비를 유지하고 배경을 맞 춥니 다. 다른 옵션이없는 경우이를 최고 답변으로 표시합니다. 감사합니다! – d4jo

+0

이것은 굉장합니다! 나는이 해킹을 찾고 있었다. 일반 TableView가 필요하지만 섹션 머리글이 맨 위에 고정되는 것을 원하지 않습니다. 이 작업을 수행하는 유일한 방법은 UITableView가 셀 배경을 재정의하는 그룹화 모드로 전환 한 다음 셀의 크기를 조정하기 위해이 수정을 추가하는 것입니다. 개발자들에게 자유를주지 못하게하고, 커스터마이즈 할 수있는 해킹을하지 않기 위해 애플을 싫어하십시오. – esbenr

0

스토리 보드를 통해 액세스 할 수있는 크기 검사기에서 UITableView의 선행 및 후행 공간 제약 조건을 사용할 수 있습니다. 이것이 언제 추가되었는지는 잘 모르겠지만 Leading Space Constraint를 -10으로, Trailing Space Constraint를 10으로 설정하면 셀이 전체 너비가됩니다.

+0

스토리 보드 내에서 테이블보기를 선택할 때 사용할 수있는 옵션이 표시되지 않습니다. – XCool

관련 문제