[ios] UIButton의 imageSize를 조정하는 방법은 무엇입니까?

UIButton의 이미지 크기를 어떻게 조정할 수 있습니까? 이미지를 다음과 같이 설정하고 있습니다.

[myLikesButton setImage:[UIImage imageNamed:@"icon-heart.png"] forState:UIControlStateNormal];

그러나 이것은 이미지를 전체 버튼으로 채 웁니다. 이미지를 더 작게 만들려면 어떻게합니까?



답변

내가하려는 일을 올바르게 이해하면 이미지 가장자리 삽입 버튼을 사용해야합니다. 다음과 같은 것 :

myLikesButton.imageEdgeInsets = UIEdgeInsets(top, left, bottom, right)


답변

Tim의 대답은 정확하지만 내 경우에는 더 간단한 해결책이 있었기 때문에 다른 제안을 추가하고 싶었습니다.

UIButton버튼의 콘텐츠 모드를 설정할 수 있다는 것을 알지 못했기 때문에 이미지 삽입 을 설정 UIImageView하려고했습니다 .UIEdgeInsets 및 하드 코딩 된 값을 모두 사용할 필요가 없었습니다. 버튼에서 기본 이미지보기에 액세스하고 컨텐츠 모드를 설정하십시오.

myButton.imageView.contentMode = UIViewContentModeScaleAspectFit;

UIButton이 콘텐츠 모드 설정을 수신하지 못합니까?를 참조하십시오 .

스위프트 3

myButton.imageView?.contentMode = .scaleAspectFit


답변

스위프트 3 :

button.setImage(UIImage(named: "checkmark_white"), for: .normal)
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill
button.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10)


답변

이와 같은 인터페이스 빌더에서이를 수행 할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

도움이 될 것 같습니다.


답변

이미지가 너무 크면 (그리고 이미지를 작게 만들거나 할 수없는 경우) 처음 두 답변의 조합이 효과적입니다.

addButton.imageView?.contentMode = .scaleAspectFit
addButton.imageEdgeInsets = UIEdgeInsetsMake(15.0, 15.0, 15.0, 5.0)

이미지 삽입물을 바로 가져 오지 않으면을 변경하지 않고 이미지가 기울어 contentMode집니다.


답변

imageEdgeInsets버튼 이미지 주위의 사각형에 대한 시작 또는 시작 여백 속성 을 사용할 수 있습니다 .

 [self.btn setImageEdgeInsets:UIEdgeInsetsMake(6, 6, 6, 6)];

양수 값은 해당 에지를 축소하거나 삽입합니다. 음수 값은 해당 가장자리를 확장하거나 시작합니다.


답변

UIButton의 imageView를 스케일링하는 다른 솔루션은 다음과 같습니다.

button.imageView?.layer.transform = CATransform3DMakeScale(0.8, 0.8, 0.8)