문제

나는 480x331이고 투명한 배경을 가지고있는 이미지가 있습니다. 투명 부분은 이미지의 가장자리 주변에 있습니다. 내 Uibutton은 72x37입니다. 버튼의 IB에서 이미지를 배경 이미지로 설정하면 이미지의 투명한 가장자리가 버튼의 흰색으로 표시됩니다. 이미지가 없으면 버튼은 둥근 모서리가있는 흰색입니다. 나는 그것이 내가 오는 흰색이라고 생각합니다. 그렇다면 이미지 투명도가 작동하고 있지만 버튼의 흰색 영역이 표시되고 있음을 의미합니다.

이미지를 Uibutton의 이미지 속성으로 설정하면보기 모드를 변경 한 후에도 올바르게 확장되지 않으며 전체 크기로 유지됩니다.

스케일링과 투명성을 올바르게 작동시키기 위해 어떤 속성을 사용해야하는지에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

어떤 버튼 유형을 사용하고 있습니까?

그것의 소리로 당신은 아마도 uibittontyperoundedRect 스타일을 사용하고 있지만 uiBiStontypecustom이 더 적합 할 수 있습니다. 인터페이스 빌더의 검사관 창 내에서 이것을 변경할 수 있습니다.

다른 팁

@Christopher Fairbaim은 Uibuttontypecustom의 사용을 제안 할 권리가 있습니다. uibilttontyperoundedRect를 사용하면 투명한 영역에서 흰색 배경을 제공합니다.

그러나 인터페이스 빌더의 배선에는 제한이 있습니다. 데이터 세트 또는 사용자 입력을 기반으로 UIVIEWS, UIBIRTTONS 및 자산을 동적으로 생성하려면 프로그래밍 방식으로 수행하는 것이 좋습니다.

버튼을 만들려면 : (참고 : 이것은 다른 UibittonTypes 와도 작동하지만이 특정 투명성 예제에 UibittonTypecustom을 사용했습니다.)

UIButton *btnName = [UIButton buttonWithType:UIButtonTypeCustom];

원하는 속성을 변경하려면 :

btnName.backgroundColor = [UIColor clearColor];
btnName.frame = CGRectMake(100, 100, 72, 37);  //(X coord, Y coord, width, height)
[btnName addTarget:myActionClassName action:@selector(myActionName) forControlEvents:UIControlEventTouchUpInside];

다양한 상태에 대한 이미지를 추가하려면 (투명한 .png '라고 가정) :

UIImage *btnNameImageNormal = [UIImage imageNamed:@"btnNameNormal.png"];
[btnName setBackgroundImage:btnMenuImageNormal forState:UIControlStateNormal];
UIImage *btnNameImagePressed = [UIImage imageNamed:@"btnNamePressed.png"];
[btnName setBackgroundImage:btnNameImagePressed forState:UIControlStateHighlighted];

보기에 버튼을 추가하려면 (ViewController 클래스 내에서) :

[self addSubview:btnName];

(내 프로젝트 중 하나에서 복사하고 붙여 넣고 이름 지정을 일반화하려고했을 때 오타를 용서하십시오.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top