2010-02-14 16 views

Trả lời

244

Nút của bạn phải có buttonType được đặt thành Tùy chỉnh.

Trong IB, bạn có thể bỏ chọn "Hình ảnh điều chỉnh nổi bật".

lập trình bạn có thể sử dụng theButton.adjustsImageWhenHighlighted = NO;

tùy chọn tương tự có sẵn cho các "khuyết tật" nhà nước là tốt.

+1

Bất kỳ cơ hội bạn biết những gì phiên bản chương trình này sẽ là gì? Ngay bây giờ tôi đã có nó làm việc hackishly bằng cách làm cho nó bị vô hiệu hóa, và mặc quần áo nó lên như được lựa chọn. – kbanman

+94

uibutton.adjustsImageWhenHighlighted = NO; – Haydn

+33

Cũng đảm bảo loại nút được đặt thành TÙY CHỈNH. (Như Mosib Asad đã đề cập trong một câu trả lời khác) –

4

Tùy thuộc vào những thay đổi từ mặc định sang trạng thái được đánh dấu của nút, bạn có thể gọi một vài phương pháp để đặt chúng thành những gì bạn cần. Vì vậy, nếu hình ảnh thay đổi bạn có thể làm

[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted]; 

Nếu văn bản thay đổi bạn có thể làm

[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted]; 

chức năng tương tự khác:

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state

+0

setTitleColor là tất cả những gì tôi cần để tắt đánh dấu trên văn bản của uibutton – atulkhatri

3

OK đây là một giải pháp dễ dàng nếu điều này phù hợp với bạn, sau tuần của đập đầu của tôi về điều này nó cuối cùng đã xảy ra với tôi chỉ cần thiết lập nổi bật = NO cho dòng 1 của phương pháp IBAction cho TouchUpInside hoặc TouchDown, hoặc bất cứ điều gì làm việc. Đối với tôi nó đã được tốt trên TouchUpInside.

-(IBAction)selfDismiss:(id)sender { 

    self.btnImage.highlighted = NO; 

    NSLog(@"selfDismiss"); 

    etc, etc, etc. 

} 
21
button.adjustsImageWhenDisabled = NO; 

cũng không kém phần hữu ích vì có sự xuất hiện của riêng bạn của một nút khuyết tật.

34

này sẽ làm việc cho bạn:

[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal]; 
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected]; 
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted]; 

dòng thứ 3 là thủ thuật ở đây ...

này hoạt động tương tự để thiết lập hình ảnh/backgroundImage

+1

Công trình này hoàn hảo cho tôi. Thuộc tính 'adjustsImageWhenHighlighted' của' UIButton' dường như chỉ ảnh hưởng đến hình nền. –

+0

Lưu ý rằng nếu quyết định gán hình ảnh cho 'trạng thái bị vô hiệu hóa', bạn không gọi setBackgroundImage. Thay vào đó, bạn nên làm như sau [nút setImage: image forState: UIControlStateDisabled]; Cũng lưu ý rằng, như được đề cập trong chủ đề này, thuộc tính adjustsImageWhenHighlighted UIButton chỉ ảnh hưởng đến hình nền. – HamasN

26
adjustsImageWhenHighlighted = NO; 
33

Ngoài trên trả lời bỏ chọn "đánh dấu điều chỉnh hình ảnh" trong IB, đảm bảo rằng loại nút được đặt CUSTOM.

+2

Đây là phần bị thiếu: nút loại CUSTOM. Thanx! – JOM

+1

Nếu tôi muốn giữ nguyên hệ thống UIButton thì sao? sao tôi không thể xóa phần đánh dấu điều chỉnh hình ảnh? –

-2

tránh để thiết UIButton của Dòng Nghỉ để Clip, sử dụng thay vì tiêu chuẩn Truncate Trung

enter image description here

2

chỉ hai điều:

UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom]; 
btnTransparentComponent.adjustsImageWhenHighlighted = NO; 
2

Tôi đã có một vấn đề tương tự và thấy rằng "bỏ chọn" Xóa nội dung đồ họa trong trình tạo giao diện đã khắc phục sự cố của tôi

enter image description here

2

Đối Swifty Developer -

yourButton.adjustsImageWhenHighlighted = false 
1

làm nút Loại của bạn - "Custom" và Bỏ chọn - Nổi bật Điều chỉnh hình ảnh và bạn đang thực hiện.

0

Swift 3+

button.adjustsImageWhenHighlighted = false 

button.adjustsImageWhenDisabled = false