2013-09-24 2 views
10

저는 iOS6에서 내 사용자 정의 셀이 화면의 왼쪽과 오른쪽으로 완전히 확장 된 UITableView를 가지고 있습니다. 그래서 셀의 왼쪽에있는 정사각형의 이미지가 전화 화면에 부딪혔다.ios7의 UITableViewCell이 이제 왼쪽과 오른쪽에 간격이 있습니다.

그러나 이제 ios7에서는 왼쪽에 약간의 틈이 생겨 이미지가 옆쪽에서 벗어나고 셀 내의 텍스트가 약간 겹칩니다.

다른 앱에서도 마찬가지입니다. 현재 ios7에서보고 있습니다. 모두 왼쪽과 오른쪽에 간격이 있습니다.

인터페이스 빌더에 따라 내 맞춤 셀의 크기가 320으로 설정되었습니다. 변경 사항이 있습니까?

답변

2

cell.contentView 수정에 문제를 이미지를 추가 :

[cell.contentView addSubview:imgView];

당신도 separatorInset 속성을 마음에없는이 방법 . C#에서 자 마린/MonoTouch를 사용하는 사람들을 위해

23

iOS7에는 separatorInset 속성이 추가되었습니다. 당신의 UITableViewController이 추가

시도 :

if ([self.tableView respondsToSelector:@selector(separatorInset)]) { 
    [self.tableView setSeparatorInset:UIEdgeInsetsZero]; 
} 
+0

내가 성공하지 않고 시도했다. 내 테이블보기 인터페이스 작성기와 함께 만든 및 성공 (viewdidload, viewwillappear 등)없이 테이블보기 구현 다양한 위치에 코드 삽입 시도했다. 내가 그것을 도울 수 있다면 서브 클래 싱에 들어가기를 정말로 원하지 않는다. 그래서 나는 당신의 방법과 관련하여 무언가를 놓치고 있는가? – skeg0

+1

인터페이스 빌더를 사용하는 경우 테이블보기를 선택하고 속성 검사기로 이동 한 다음 표보기에서 "구분 기호 삽입"이라는 항목을 찾아 기본값을 사용자 정의로 변경 한 다음 왼쪽 값을 15로 변경하십시오 0 – loydbrahn

+0

이것은 각 섹션의 인세 트에 대한 제목을 변경하지만 표 셀 자체에서는 변경되지 않는 것으로 보입니다. – skeg0

1

tableView.SeparatorInset = UIEdgeInsets.Zero; 
+1

UIEdgeInsetsZero – Jasmeet

+0

그 의견이 무엇을 의미하는지 모르겠지만 내가 게시 한 코드가 Xamarin 에서처럼 정확하다고 생각합니다. 이러한 속성은 필드로 변환되므로 사용하기가 더 쉽습니다. Documenetation은 http://docs.go-mono.com/monodoc.ashx?link=T%3aMonoTouch.UIKit.UIEdgeInsets%2f*에서 찾을 수 있습니다. – Webmonger

+1

위의 설명은 모노가 무엇인지 알지 못합니다. 'tableView.separatorInset = UIEdgeInsetsZero;'for obj-c'tableView.SeparatorInset = UIEdgeInsets.Zero;'for mono! –

3

나는 seperators 나 자신을 선호하는 것입니다. 테이블 뷰 설정으로 어려움을 겪는 것보다 간단합니다. 분리자를 none으로 설정하고, 셀을 서브 클래 싱 한 다음 init에서이 작업을 수행하십시오.

-(id)initWithCoder:(NSCoder *)aDecoder{ 
    self = [super initWithCoder:aDecoder]; 
    if(self){ 

     UIView *seperator = [[UIView alloc] init]; 
     [seperator setBackgroundColor:[UIColor blackColor]]; 
     seperator.frame = CGRectMake(0, self.bounds.size.height-1, self.bounds.size.width, 1); 
     [seperator setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth]; 
     [self.contentView addSubview:seperator]; 

    } 
    return self; 
} 
+0

문제는 Retina 디스플레이에서 분리 기호가 2px 두께로 표시되는 반면 UITableView는 1px 두께로 표시된다는 점입니다. 나는 화면 해상도를 구별하고 0.5px 또는 1px 라인을 그리는 로직을 정의함으로써이 한계를 극복했다. – user3099609

3

이 나를 위해 완벽하게 노력하고 있습니다 :

-(void)viewDidLayoutSubviews 
{ 
    if ([self.Video_TableVIEW respondsToSelector:@selector(setSeparatorInset:)]) { 
     [self.Video_TableVIEW setSeparatorInset:UIEdgeInsetsZero]; 
    } 

    if ([self.Video_TableVIEW respondsToSelector:@selector(setLayoutMargins:)]) { 
     [self.Video_TableVIEW setLayoutMargins:UIEdgeInsetsZero]; 
    } 
} 

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { 
     [cell setSeparatorInset:UIEdgeInsetsZero]; 
    } 

    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { 
     [cell setLayoutMargins:UIEdgeInsetsZero]; 
    } 
} 
0
override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.cellLayoutMarginsFollowReadableWidth = false 
}