Khi sử dụng resizableImageWithCapInsets: để tạo hình ảnh chỉ UIButton trạng thái bình thường (trạng thái đặt hình ảnh bằng cách sử dụng setBackgroundImage: forState:) công trinh. Tất cả các tiểu bang khác cho thấy một khoảng cách thay vì hình ảnh được vẽ. UIButton nói rằng nếu không có hình ảnh nào được đặt cho một trạng thái cụ thể, hình ảnh trạng thái bình thường sẽ được sử dụng với lớp phủ cho các trạng thái bị vô hiệu hóa và được chọn.Sử dụng resizableImageWithCapInsets: hình ảnh cho nút chỉ hoạt động cho bộ trạng thái, các trạng thái khác hiển thị "khoảng cách"
Đây là trạng thái bình thường:
Đây là tình trạng chọn:
Và đây là hình ảnh nguồn:
Rõ ràng là đang sử dụng hình ảnh có thể thay đổi kích thước mà tôi đã cung cấp, nhưng hình ảnh không vẽ khu vực được chỉnh kích thước. (Bạn có thể thấy các cạnh trái và phải nhưng khu vực giữa được kéo dài không được vẽ).
Thú vị, có thể kéo dàiImageWithLeftCapWidth: topCapHeight: hoạt động. Bây giờ đây là một phương pháp không được chấp nhận trong iOS 5, nhưng với khoảng cách được hiển thị trong API mới, tôi có thể bị mắc kẹt khi sử dụng nó.
Tôi nhận ra rằng tôi có thể cung cấp nhiều hình ảnh hơn cho mỗi tiểu bang nhưng đánh bại mục đích mà tôi đang cố gắng đạt được để giảm dung lượng bộ nhớ cộng thêm phụ thuộc vào thiết kế đồ họa của tôi mà tôi muốn tránh.
// This is the gist of the code being used
UIImage* image = [UIImage imageNamed:@"button.png"];
UIEdgeInsets insets = UIEdgeInsetsMake(image.size.height/2, image.size.width/2, image.size.height/2, image.size.width/2);
image = [image resizableImageWithCapInsets:insets];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
// Even doing the following results in the same behaviour
[self.button setBackgroundImage:image forState:UIControlStateSelected];
Nhập đoạn mã và lưu trữ ảnh chụp màn hình (cắt vào khu vực thích hợp) – NSProgrammer
Thật lạ lùng ... Tôi muốn để xem button.png nếu có thể. –
http://i40.tinypic.com/ea35zq.png - Tôi chỉ có thể thêm 2 liên kết vào bài đăng với tư cách người dùng mới, nhưng đây là nút sour.png – NSProgrammer