Tôi đã sử dụng tốt này tutorial để tạo một lớp UIPopoverBackgroundView tùy chỉnh.Tùy chỉnh UIPopoverBackgroundView: không có bóng đổ
Nó hoạt động tốt. Vấn đề duy nhất là tôi không nhận được bóng đổ UIPopoverController điển hình và tôi muốn nó. Tôi đã cố gắng xác định nó trên lớp của UIPopoverBackgroundView dụ của tôi mà không thành công. Ví dụ của tôi về UIPopoverController dường như không có chế độ xem công khai để thao tác. Thêm nó vào nội dung popover cũng không hoạt động.
Có lẽ thực sự đơn giản: làm cách nào để thêm bóng thả khi sử dụng lớp UIPopoverBackgroundView tùy chỉnh?
// UIPopoverBackgroundView.m
-(id)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
_borderImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"bg-popover.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(CAP_INSET,CAP_INSET,CAP_INSET,CAP_INSET)]];
_arrowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popover-arrow.png"]];
[self addSubview:_borderImageView];
[self addSubview:_arrowView];
self.layer.shadowOffset = CGSizeMake(50, 50);
self.layer.shadowColor = [[UIColor blackColor] CGColor];
}
return self;
}
Cảm ơn bạn rất nhiều cho việc này! –
Chỉ cần nghĩ rằng tôi muốn thêm rằng điều này làm việc cho tôi, nhưng tôi đã có vấn đề hiệu suất. Rasterizing lớp nền đã giúp vô cùng: 'backgroundImageView.layer.shouldRasterize = YES;' – Maurizio
Thú vị - Tôi đã không nhận thấy bất kỳ độ trễ đáng kể nào (trên iPad 2) nhưng tốt để biết. –