2013-01-11 5 views
1

UITableView에있는 셀 중 하나에 UIImageView의 가운데에 넣으려고합니다. 이렇게하려면 UITableViewCell의 하위 클래스를 만들고 imageView의 위치를 ​​-(void)layoutSubviews에 업데이트해야했습니다. 나는 기본적으로 다음과 같은 몇 가지 방법을 시도했다 :UITableViewCells의 ImageViews에 고정 된 패딩?

-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    self.imageView.center = self.center; 
} 

이것은 내가 원하는 방식으로 작동하지 않는다. imageView 같은 고정 된 패딩이있는 것 같습니다. imageView의 중심이 실제로는 셀의 실제 중심 오른쪽 아래에있는 것이 원인입니다. self.imageView.center.x = self.center.x;과 같은 것을 쓰면 이미지의 높이가 중앙에 오지만 약간 오른쪽으로 오게됩니다. 그래서 나는 패딩이 문제라면 올바른 결과를 얻기 위해 self.imageView.center.x = self.center.x - someValue;과 같은 것을 써야한다고 생각합니다. 이 패딩은 어디에서 찾을 수 있습니까? 아니면 패딩이 없거나 다른 이유로 인해 발생했을 수 있습니다. 그런데

는, 그이 함께 할 수있는 뭔가가 할 수 있다면 ..

그룹화있는 tableView의 그리고,있는 UIImageView의 높이와 폭이 셀보다 작아야합니다, 나는 돈 때문에 이것이 이것을 밀어 내리는 것이라고 생각하지 않습니다.

얼마 남았는지 확인하기 위해 일시적으로 내 이미지에 테두리를 추가했습니다. 이미지에 보이는 코드는 맞춤형 셀 클래스에 추가 된 유일한 코드입니다. Result

+0

이미지 뷰를 테이블 셀의 'contentView'에 추가합니까? –

+0

@AndrewTetlaw 아무 것도 추가하지 않고 셀에 기본적으로 imageView가 있습니다. Self.imageView에 액세스 할 수 있고 주변을 이동할 수 있습니다. 마치 20px 패딩 또는 그와 같은 것으로 말하면 어디로 이동하지 않습니다. – Sti

+0

죄송합니다. 사용자 지정 셀을 사용자 지정 작업을하고있었습니다. 사용자 정의 셀이 필요할 수도있는 것처럼 들리지만, 인터페이스 빌더에서 빌드하고 이미지 뷰를 원하는 곳에 배치 할 수 있습니다. –

답변

2

는, 그이 함께 할 수있는 뭔가가 할 수 있다면 ..., 그룹화있는 tableView의

YUP!

그룹화 된 테이블보기에는 여백 또는 여백이 있지만 그게 무엇이든간에 불편합니다. 귀하의 문제를 다루는 많은 독특한 방법이 있기 때문에 여기에 코드 응답을 게시하지 않지만 그룹화 된 테이블 뷰에 대해 UITableView가 확실히이를 수행한다는 것을 알면 시작입니다. 여기에 그룹화 된 테이블보기로 인한 간격을 처리하는 방법을 찾는 데 도움이되는 다른 게시물이 있습니다. 행운을 빕니다!

+0

정말요?! 프로그래밍 방식으로 패딩을 찾는 방법을 알고 있습니까? 그래서 저는 ish를 취할 수 있습니다 :'self.imageView.center = self.contentView.center-padding;'상수를 사용하는 것이 싫기 때문에 contentView.center-20.0;을 쓰는 것을 피하십시오. – Sti

+0

나는 패딩이 있다고 생각된다면 셀의 'self.contentView.center'에 그 패딩이 포함되어 있지 않다는 것을 알게됩니다. 마찬가지로 센터가 설정되고 패딩이 추가됩니다. 나에게 이해가 가지 않는다 .. – Sti

+0

나는 이것을 프로그램 적으로하는 방법을 찾는 것이 가장 좋겠지 만, 애플이 그렇게 할 수있는 쉬운 방법이 없다는 것에 동의한다. 내가 상수 나 다른 추악한 솔루션에 의지하는 것을 시도한 최선의 시도. 이 마진은 다른 장치에서, 다른 방향으로 다를 수 있다는 점을 명심하십시오. 그러니 앱을 디자인 할 때 이것을 염두에 두시기 바랍니다. 당신이 단지 초상화 아이폰 앱을 위해 디자인하는 경우, 당신은 단순한 상수를 고수하는 것이 안전하지만, 당신이 더 복잡한 것을 지원하는 더 많은 장치와 방향이된다. – ozz

1

이것은 나를 위해 일한 :

enter image description here

은 또한 당신은 backgroundView의 사용을 만들 수 :

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    self.imageView.center = self.contentView.center; 
    self.imageView.layer.borderColor = [UIColor blackColor].CGColor; 
    self.imageView.layer.borderWidth = 2.0; 

    self.contentView.layer.borderColor = [UIColor greenColor].CGColor; 
    self.contentView.layer.borderWidth = 2.0; 
} 

이 결과

내가 무엇을 얻을 :

UIView *bg = [[UIView alloc] initWithFrame:self.frame]; 
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon"]]; 

[bg addSubview:img]; 
img.center = bg.center; 

self.backgroundView = bg; 
그런데
+0

그것은 나를 위해 작동하지 않습니다 .. 이제는 얼마나 많은 것을 볼 수있는 imageView 테두리를 추가했습니다 및 오른쪽 20px 공간에 대해 말하고 싶지만, 그리고 왼쪽의 60px .. 또한 약 1px 정도 내린 것처럼 보이지만 그럴 수도 있습니다. – Sti

+0

테이블 셀에 다른 항목이 있습니까? 도움이 될만한 자세한 내용도 있습니다. 이미지 파일에 대한 링크를 붙여 넣을 수 있습니까? –

+0

링크? 나는 지금 당장 그것을 가져 와서 바로 여기에 업로드했다. 거기에 링크가 있는지 모르겠다. 많이 볼 것이별로 없다. 단지 imageView가 분명히 오른쪽으로가는 길이다. – Sti

관련 문제