Xcode5 iOS7 - UIPopoverController Corner Radius
Я перехожу к iOS 7 в приложение, которое было довольно гладко, там одна вещь, которую я не могу понять.
У меня есть контроллер представления с кнопками пары, которые я показываю с помощью UIPopoverController.
Мне кажется, что контроллер popover делает что-то, чтобы закрепить содержимое этого контроллера просмотра.
iOS6 (я хочу это):
![enter image description here]()
iOS7 (что-то изменилось):
![enter image description here]()
Я использую пользовательский класс фона контроллера popover, описанный здесь http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller
Здесь моя конкретная версия этого фонового класса http://pastebin.com/fuNjBqwU
Кто-нибудь знает, что изменить, чтобы вернуть его на мой iOS 6?
Ответы
Ответ 1
Я попытался получить решение @OneSman7 для работы, но представление с cornerRadius не было прямым просмотром экземпляра contentViewController.view. Вместо этого мне пришлось подойти к иерархии представлений, ища ту, у которой cornerRadius не равен 0 и reset (это просто экземпляр UIView, не имеет специального имени класса для проверки). Менее идеальное решение, но, похоже, работает до сих пор.
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
UIView *view = self.view;
while (view != nil) {
view = view.superview;
if (view.layer.cornerRadius > 0) {
view.layer.cornerRadius = 2.0;
view = nil;
}
}
}
}
Ответ 2
В контроллере контента popover:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.view.superview.layer.cornerRadius = 0;
}
Ответ 3
Я просто попал в ту же проблему и нашел (не очень удовлетворительный) ответ здесь: Уличный стиль UIView имеет закругленные углы?
Ответ 4
Возможно, вы могли бы просто заменить фоновое представление contentViewInsets на:
+ (UIEdgeInsets)contentViewInsets{
return UIEdgeInsetsZero;
}
А затем просто дайте вашему ContentViewController просмотреть дополнительные надписи на его краях, так что, хотя углы по-прежнему будут округлены, они не будут содержать ни одного вашего содержимого, чтобы эффект округления не был виден.