2011-08-14 26 views
6

Tôi hiện đang cố gắng tìm hiểu xem liệu có thể kiểm tra nút hình ảnh nào sử dụng hay không.Cách kiểm tra hình ảnh nút trong Xcode

Cho phép nói rằng tôi có image1 và image2.

Nếu hình ảnh nút là image1 làm điều này và nếu hình ảnh nút là image2 làm điều đó.

Nhưng xcode doesnt cho tôi bất kỳ tùy chọn tự động điền ....

[m1 setImage:[UIImage imageNamed: @"Penguin.png"] forState:UIControlStateNormal]; 

Đây là cách tôi đặt những hình ảnh. nhưng làm thế nào để tôi tìm ra wheter Penguin hoặc Penguin2 của nó?

Trả lời

6

Cocoa Touch được thiết kế xung quanh mẫu Model-View – Controller, vì vậy bạn có thể muốn thử áp dụng mẫu đó. Thay vì cố gắng lấy thông tin trạng thái - chim cánh cụt đã chọn - từ khung nhìn - nút - lưu nó trong một biến mẫu trong lớp điều khiển của bạn.

Mã của bạn để thiết lập hình ảnh có thể nhìn như thế này:

self.currentImage = @"Penguin.png"; 
[m1 setImage:[UIImage imageNamed: currentImage] forState:UIControlStateNormal]; 

Sau đó, khi bạn cần phải kiểm tra giá trị:

if ([@"Penguin.png" isEqual:self.currentImage]) { 
    do something; 
} 
3

Kiểm tra sự bình đẳng của các hình ảnh được thực hiện như sau:

if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage]) { 
    // do something 
} 
+0

Tôi không nghĩ rằng điều này có thể làm việc, bec sử dụng bạn đang cố gắng so sánh hai trường hợp khác nhau từ cùng một người cha. Nó sẽ luôn luôn in sai –

+0

Nó hoạt động trên máy tính của tôi. Hãy dùng thử. – nicholjs

+0

Điều này sẽ chỉ hoạt động nếu bạn đặt hình ảnh thành m1 từ phương thức [UIImage imageNamed:], vì nó giữ kết nối mọi lúc được sử dụng, nhưng nếu bạn cố gắng đặt [[UIImage alloc] initWithContentsOfFile:] nó sẽ luôn luôn sai –

2

2 phương pháp có thể được sử dụng cho việc này:

1.

UIImage *image = self.myButton.currentBackgroundImage; 

2.

myImageView.image = [myButton backgroundImageForState:myButton.state]; 
2
UIImage *img=[(UIButton *) sender currentImage]; 

if(img == [UIImage imageNamed:@"edit"]) 
{ 
    //If do something 
}` 

thử hy vọng này nó sẽ làm việc

+0

Nếu nó không hoạt động, hãy thêm @ "edit.png" hoặc định dạng hình ảnh nào. cho tôi làm việc đúng cách – krishh

5

Chỉ cần sử dụng Bộ luật này cho Button Action trên cơ sở hình ảnh

- (IBAction)checkButtonClicked:(UIButton *)sender { 

    if ([checkButton.currentImage isEqual:[UIImage imageNamed:@"checkbox.png"]]) 
     [checkButton setImage:[UIImage imageNamed:@"Checked.png"] forState:UIControlStateNormal]; 
//do some thing here for your image1 

     else 
    [checkButton setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal]; 
    //do some thing here for your image 2 

} 
Các vấn đề liên quan