Bạn không cần phải truy cập vào các IMAGExem nền, nhưng có đầy đủ là cách giải quyết lao động:
EDIT: Có một cách giải quyết tốt hơn sau đó những gì tôi gửi ban đầu. Bạn có thể tạo một UIImage từ bất kỳ màu sắc, và gọi -setBackgroundImage:forState.
Xem bradley's
câu trả lời, ở đây: https://stackoverflow.com/a/20303841/1147286
Original câu trả lời:
Thay vì gọi -setBackgroundImage:forState:
, tạo một UIImageView mới và thêm nó như là một subview của nút.
UIImageView *bgImageView = [[UIImageView alloc] initWithImage:img];
bgImageView.contentMode = UIViewContentModeScaleAspectFit;
[bgImageView setFrame:CGRectMake(0, 0, videoButton.frame.size.width, videoButton.frame.size.height)];
bgImageView.tag = 99;
[yourButton addSubview:bgImageView];
[yourButton bringSubviewToFront:yourButton.imageView];
- Tạo các ImageView
- Đặt chế độ nội dung và khung
- Tôi cũng thiết lập một thẻ nhận biết, do đó khi màn hình xoay tôi có thể dễ dàng tìm thấy IMAGExem tùy chỉnh của tôi trong subviews của nút và đặt lại khung của nó
- Thêm dưới dạng chế độ xem phụ vào nút
- Mang hình ảnh mặt trướcXem nút về phía trước do đó, imageView tùy chỉnh của chúng tôi không chồng chéo lên
Khi nút cần phải xoay chỉ tìm ra IMAGExem bằng thẻ của mình và đặt lại khung của nó:
UIImageView *bgImageView = (UIImageView *)[button viewWithTag:99];
[bgImageView setFrame:CGRectMake(0, 0, newWidth, newHeight)];
Nguồn
2014-07-12 20:01:11
Bạn có thực sự cần nó để được hình nền ? Bạn có cần thực sự viết văn bản hoặc đặt một hình ảnh khác lên trên nó không? Nếu không, hãy sử dụng hình ảnh chứ không phải hình nền, vì chỉ hình nền được kéo dài theo mặc định để khớp với khung. –
@Raphael Không có câu nào trong số những câu trả lời này có phù hợp không? – memmons