developer tip

UIButton에서 이미지를 늘리지 않는 방법

optionbox 2021. 1. 9. 09:45
반응형

UIButton에서 이미지를 늘리지 않는 방법


프로그래밍 방식으로 사용자 지정 UITableViewCell을 만들려고하는데이 셀의 하위보기 중 하나가 이미지가있는 버튼 (돋보기의 간단한 이미지)이 될 것입니다. 그러나 버튼의 이미지가 중앙에 배치되고 버튼에 맞게 비례 적으로 축소되고 전체 버튼을 채우기 위해 늘어나지 않기를 원합니다. 아래는 self가 버튼을 배치하는 사용자 정의 UITableViewCell을 참조하는 내 코드입니다.

self.myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.myButton setBackgroundImage:[UIImage imageNamed: @image_name_here"] forState:UIControlStateNormal];
self.myButton.frame = CGRectMake(...//something, something)
self.myButton.imageView.contentMode = UIViewContentModeCenter;
[self.contentView addSubview:self.mySearchHelpButton];

지금은 이미지가 잘 맞도록 비례 적으로 크기를 조정하는 대신 전체 버튼을 채우도록 늘어납니다.

또한 contentMode를로 설정하려고 시도했지만 UIViewContentModeScaleAspectFill아무것도 변경되지 않는 것 같습니다. 사실, 다른 contentMode는 아무것도 변경하지 않는 것 같습니다.


setImage대신 시도해 보셨습니까 setBackgroundImage?


버튼이 사용자 정의 UIButton인지 확인하십시오.

그냥 사용 setImage:iOS9에 나를 위해 작동하지 않았다.

그러나 그것은 myButton.imageView.contentMode = UIViewContentMode.ScaleAspectFit;


스위프트에서 ...

button.imageView?.contentMode = .aspectFit

스토리 보드

부동산 이미지.

Identity inspector런타임 속성 에서 특정 속성을 정의해야합니다 . 여기서 enum 위치에 상대적으로 값을 설정합니다 . 1은 scaleAspectFit을 의미 합니다 .imageView.contentModerawValueUIViewContentMode

Storyboard에서 button.imageView.contentMode 설정

속성 관리자 에서 버튼의 정렬 :

버튼 전체 정렬


스위프트 4.2

myButton.imageView!.contentMode = .scaleAspectFit

Swift 이전 버전

myButton.imageView!.contentMode = UIViewContentMode.scaleAspectFit

Swift 4.X 및 5.X

button.imageView!.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill

나는 너희들이 명백한 문제를 놓치고 있다고 생각한다. 이미지가 버튼에 비해 너무 커서 iOS는 원하는 크기를 추측해야합니다. 이미지가 올바른 크기인지 확인하면이 문제가 발생하지 않습니다. 물론 이것은 동적 콘텐츠가 아니라 미리 크기를 알고있는 정적 이미지 및 버튼을위한 것입니다.

참조 URL : https://stackoverflow.com/questions/11346697/how-to-not-stretch-an-image-in-uibutton

반응형