2011-08-20 3 views
0

사용자 지정된 UITableViewCell 안에 가로로 200x200 이미지를 센터링하는 데 문제가 있습니다. 나는 tableViewheightForRowAtIndexPathUITableViewDelegate에 적절한 값으로 설정했다. 그러나 이미지를 수평으로 중심에 두지는 않는다. 단지 수직으로 (내가 추측하는 것보다 낫다)하는 것이다. 나 또한 사용자 정의 셀에서 layoutSubviews에있는 imageView.frame의 값을 변경하려고 시도했지만 효과가없는 것으로 보입니다. 나는 심지어 주석을 달아서 [super layoutSubviews]; 앞에 놓고 프레임의 값으로 놀았지만 같은 결과를 계속 얻는다.UIImageView를 UITableViewCell에 가로로 가운데 놓는 방법은 무엇입니까?

아무도 도와 줄 수 있습니까? 이러한 효과를 내기 위해 어떤 코드를 작성해야합니까? 감사합니다. .

+0

당신이 사용자 정의있는 UITableViewCell을 만들 수있는 펜촉을 사용하고이 코드를 자사의 도움을 다할 것입니다? 그렇지 않은 경우 펜촉을 사용하여 매우 쉽게 수행 할 수 있습니다. – msgambel

+0

찌꺼기가 전혀 없습니다. 동적으로 일을해야하기 때문에 프로그래밍 방식으로 모든 것을 수행하고 있습니다. 어떤 아이디어? 그렇지 않다면, IB에서 어떻게해야하는지 알려주시겠습니까? 그러면이 문제의 원인을 알 수 있습니다. 감사합니다. – Nabou

+0

IB에서는 UIImageView를 셀 중앙에 놓으면됩니다. 그러면 항상 UIImageView가 그곳에 표시됩니다. 당신이 프로그래밍 방식으로하고 싶다면, 아마도 경계를 가지고 놀 수 있을까요? – msgambel

답변

1

당신은 당신이

 You need to subclass UITableViewCell and override layoutSubviews, as follows: 

    - (void) layoutSubviews 
    { 
     [super layoutSubviews]; 

     self.imageView.frame = CGRectMake(10, 10, 50, 50); // your positioning here 
    } 

    In your cellForRowAtIndexPath: method, be sure to return an instance of your new cell type. 
+0

이것은 효과가있다! 내가 추가 한 UIImageView의 프레임을 변경하려고했는데 그것이 작동하지 않는 이유였습니다. contentView의 범위를 변경하면 동일한 효과가 발생한다는 것을 알았지 만 그 이유는 단 하나의 요소 즉 이미지가 있기 때문입니다. 감사. – Nabou

+0

잘 처리했습니다. 조금 단계별로 튜토리얼을 만들고 링크를 게시하면이 문제가 저를 매우 짜증나게 할 것입니다. – voghDev

0
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

UIImageView *imgView; 
if(cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 

    imgView = [[UIImageView alloc] initWithFrame:(100,0,100,62)]; 
    [imgView setImage:[UIImage imageNamed:@"img.png"]]; 
    imgView.tag = 55; 
    [cell.contentView addSubview:imgView]; 
    [imgView release]; 
} 
else 
{ 
     imgView = (id)[cell.contentView viewWithTag:55]; 
} 
관련 문제