Я добавил размытие в моем приложении. Если я запустил приложение в Simulator (iPhone 6, iOS 8.4), все будет хорошо работать, и отобразится размытие. Если я запустил приложение на устройстве (iPad 3-го поколения, iOS 8.4), отображается размытие, но на нем не отображается размытый фон, вместо него отображается серый фон. Не знаю, почему. Вы знаете, почему и как его решить?Blur View работает в симуляторе, но не на устройстве
ответ
Какой код вы используете?
func BlurEffect(){
let extraLightBlur = UIBlurEffect(style: .Dark)
let extraLightBlurView = UIVisualEffectView(effect: extraLightBlur)
self.addSubview(extraLightBlurView)
//let blurAreaAmount = CGRectMake(0, 0, frame.size.width, frame.size.height)
extraLightBlurView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height)
let extraLightVibrancyView = vibrancyEffectView(forBlurEffectView: extraLightBlurView)
extraLightBlurView.contentView.addSubview(extraLightVibrancyView)
}
private func vibrancyEffectView(forBlurEffectView blurEffectView:UIVisualEffectView) -> UIVisualEffectView {
let vibrancy = UIVibrancyEffect(forBlurEffect: blurEffectView.effect as! UIBlurEffect)
let vibrancyView = UIVisualEffectView(effect: vibrancy)
vibrancyView.frame = blurEffectView.frame
//vibrancyView.autoresizingMask = .FlexibleWidth | .FlexibleHeight
return vibrancyView
}
Да, я использую эту часть код, но стиль 'Light' не' Dark'. – user5473123
Я проверил этот код с iPhone 6+ (iOS 8.4). Хорошо работает. –
Да, но попробуйте на iPad 2 iOS 8.4. Это не сработает. – user5473123
Я столкнулся с этой проблемой и запустил свой собственный эффект размытия, используя Core Image, чтобы создать категорию UIView. Он работает на очень старом iPad mini и iPod touch.
Заголовок
//
// UIView+CIFilters.h
//
#import <UIKit/UIKit.h>
@interface UIView (CIFilters)
- (UIImageView *)blurredBackgroundViewWithRadius:(CGFloat)radius;
@end
Категория
#import "UIView+CIFilters.h"
@implementation UIView (CIFilters)
- (UIImageView *)blurredBackgroundViewWithRadius:(CGFloat)radius {
UIView *snapshot = self;
// Get a CIImage from the view's contents
UIGraphicsBeginImageContextWithOptions(snapshot.bounds.size, snapshot.opaque, 0);
[snapshot drawViewHierarchyInRect:snapshot.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CIImage *snapshotImage = [CIImage imageWithCGImage:image.CGImage];
// Create a filter.
// This has to be applied first so that the edges of the CIGaussianBlur reach to the edge of the screen
// See the Core Image Filter Reference
CIFilter *clampFilter = [CIFilter filterWithName:@"CIAffineClamp"
withInputParameters:@{
kCIInputImageKey: snapshotImage
}];
CIImage *clampImage = [clampFilter valueForKey:kCIOutputImageKey];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"
withInputParameters:@{
kCIInputImageKey: clampImage,
kCIInputRadiusKey:@(radius)
}
];
CIImage *blurredCIImage = [blurFilter valueForKey: kCIOutputImageKey];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:blurredCIImage fromRect:[snapshotImage extent]];
UIImage *blurredImage = [UIImage imageWithCGImage:cgImage];
UIImageView *blurredSnaphotview = [[UIImageView alloc] initWithImage:blurredImage];
return blurredSnaphotview;
}
@end
Например
UIImageView *blurredSnapshot = [self.view blurredBackgroundViewWithRadius:10.0];
сделает размытый снимок всего вида иерархии self.view, где самость ток просмотрите контроллер. Чем больше радиус, тем более размытым изображение. Подставьте это представление для UIVisualEffectView.
Обязательно добавьте CoreImage в рамки проекта.
- 1. Работает на симуляторе, но не на устройстве
- 2. sqlite работает на симуляторе, но не на устройстве
- 3. NSURLConnection работает на симуляторе, но не работает на устройстве iphone
- 4. copyItemAtPath работает на симуляторе, но не работает на устройстве
- 5. UISearchBar работает на симуляторе, но не работает на устройстве
- 6. Аудиофайл не работает на устройстве, но работает на симуляторе
- 7. aqgridview работает в симуляторе, но не работает на устройстве
- 8. NSFileManager createFileAtPath работает в симуляторе, но не работает на устройстве
- 9. MapKit не работает на устройстве, но работает в симуляторе
- 10. приложение не работает на устройстве, но работает в симуляторе
- 11. Он работает только на симуляторе, но не работает на устройстве
- 12. Формат NSString не работает на устройстве, но работает на симуляторе
- 13. Пользовательские Раскадровка Segue Работает в симуляторе, но не на устройстве
- 14. NSDateFormatter не работает на устройстве, но не на симуляторе
- 15. Хранение на plist работает на симуляторе, но не на устройстве
- 16. AVAudioPlayer работает на симуляторе, но не на реальном устройстве
- 17. cell.imageView работает на симуляторе, но не на устройстве
- 18. Код работает на iPhone-симуляторе, но не на устройстве
- 19. Код работает на симуляторе, но не на устройстве
- 20. MPNowPlayingInfoCenter работает на симуляторе, но не на устройстве
- 21. iAd работает на симуляторе, но не на устройстве
- 22. Приложение работает на симуляторе, но не на устройстве
- 23. SQLite insert работает в симуляторе, но не на устройстве
- 24. UIBlurEffect не размывается на устройстве, но работает в симуляторе
- 25. Plist работает в симуляторе, но не на устройстве
- 26. Расширение клавиатуры работает в симуляторе, но не на устройстве
- 27. localizable.strings - работает в симуляторе, но не на устройстве
- 28. AVAudioPlayer работает в симуляторе, но не на устройстве
- 29. SizeClasses + AutoLayout работает безупречно в симуляторе, но не на устройстве?
- 30. ios: Таймер работает в симуляторе, но не на устройстве
Вы попробовали симулятор iPad? Работает ли он так, как ожидалось? – Acoop
Вы уверены, что добавили свои подвидности размытия в размытые объекты contentView? если вы не добавляете subviews здесь, я считаю, что поведение не определено. Мне нужно будет увидеть скриншоты, чтобы лучше понять, что происходит. –
Нет, он также не работает в iPad Simulator. Не знаю, что делать. Пример (серая часть - это размытие): https://www.dropbox.com/s/e77uinulbqjmu81/Bildschirmfoto%202015-10-25%20um%2023.31.37.png?dl=0 – user5473123