[[cell imageView]
너비를 표준 UITableViewCell
으로 제한 할 수 있습니까? [[cell imageView] setFrame:CGRectMake(0, 0, 50, 50)]
을 시도했지만 아무 효과가 없습니다.셀의 너비를 지정하십시오.
[EDIT]
, 그렇지 않으면 UIImageView
에 추가하기 전에 UIImage
크기를 변화시킬 수있다?
[[cell imageView]
너비를 표준 UITableViewCell
으로 제한 할 수 있습니까? [[cell imageView] setFrame:CGRectMake(0, 0, 50, 50)]
을 시도했지만 아무 효과가 없습니다.셀의 너비를 지정하십시오.
[EDIT]
, 그렇지 않으면 UIImageView
에 추가하기 전에 UIImage
크기를 변화시킬 수있다?
일반 UITableViewCell에 이미지보기의 프레임을 설정하기 만하면 UITableViewCell 하위 클래스를 만들고 -layoutSubviews
에 이미지보기 위치를 바꿀 수 있습니다.
! 잘 작동합니다. –
불가능합니다.
너비가 변경되어서는 안되기 때문에 UITableViewCell 하위 클래스를 만들어야하고 UITableViewCell에서 이미지 뷰를 변경하고 그에 따라 너비를 변경할 수 있습니다. 또는 u가
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];
}
이미지 수정 크기를 사용할 수 있습니다
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[imgview setImage:image];
[cell addSubview:imgView];
[imgView release];
질문의 목적은 이것을 피하는 것입니다. –
이 모든 셀에 대한 이미지 뷰를 제공하는 내장 기능입니다. 프레임은 하위 클래스가 아닌 한 변경할 수 없습니다.
그러나, 단순히 방법에서 다음 코드를 추가하여 자신의 imageViews 중 하나를 추가 할 수 있습니다
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* cellIdentifier = @"cellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil)
{
cell = (UITableViewCell*) [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
UIImageView* *myView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[myView setImage:image];
myView.tag = 123;
[cell.contentView addSubview:myView];
[myView release];
}
else
{
myView = (UIImageView*) [cell.contentView viewWithTag:123];
}
}
당신은 UIView의 예에서 방법을 .transform 사용할 수 있습니다
cell.imageView.transform = CGAffineTransformMakeScale(0.65, 0.65);
// 경우 UITableViewCell을 하위 클래스화할 수 있습니다.
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.bounds = CGRectMake(10,5,65,65);
self.imageView.frame = CGRectMake(10,5,65,65);
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
if (self.imageView.image) {
//TODO: adjust the textLabel and detailTextLabel
}
}
많이보고 나서 이미지 뷰의 크기를 조정하거나 UIView를 사용하여 테이블 셀을 사용하여 cGAffineTransform 메서드를 사용합니다. 예 : myUiImageView.transform = CGAffineTransformMakeScale (0.65, 0.65); subclassing 및 호출 레이아웃 subviews 나를 위해 작동하지 않았다. –
dequeueReusableCellWithIdentifier :를 사용하고 셀이 화면 밖으로 스크롤하면 셀의 이미지보기에서 변환 설정이 재설정 될 수 있습니다. –
여기 내 신속한 솔루션입니다. 문제입니다
//
// UITableVIewCellBasicWithFixedSizeImage.swift
//
// Created by Andrew Ashurow on 4/28/16.
// Copyright © 2016. All rights reserved.
//
class UITableVIewCellBasicWithFixedSizeImage: UITableViewCell {
private let
IMAGE_VIEW_WIDTH:CGFloat = 27,
TEXT_VIEW_LEFT_INSET:CGFloat = 15
override func layoutSubviews() {
super.layoutSubviews()
if let
imageView = imageView,
textLabel = textLabel{
//set fixed image width
imageView.frame = CGRect(
origin: imageView.frame.origin,
size: CGSize(
width: IMAGE_VIEW_WIDTH,
height: imageView.frame.size.height
)
)
imageView.contentMode = .Center
imageView.autoresizingMask = .None
//calculate textLabel inset
textLabel.frame = CGRect(
origin: CGPoint(
x: imageView.frame.origin.x + imageView.frame.size.width + TEXT_VIEW_LEFT_INSET,
y: textLabel.frame.origin.y
),
size: textLabel.frame.size
)
}
}
}
이미지 확장을 위해 실제로 수천 가지 카테고리 구현이 있습니다. 감사합니다. – vikingosegundo