Интерфейсы приложений получили дефекты, когда setMasksToBounds: YES - PullRequest
2 голосов
/ 18 февраля 2012

У меня странная проблема. Вы можете увидеть два прикрепленных скриншота. Проблема в дефектах, неизвестных белых прямоугольных дефектах. Некоторая часть клавиатуры даже исчезла на втором скриншоте.

Тестирование на устройстве - та же проблема ...

Кто-нибудь знает, в чем может быть причина? Большое спасибо.

textFieldDidBeginEditing

- (void)textFieldDidBeginEditing:(UITextField *)textField{
DEBUGLog
if (!isIPAD) {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    if (!viewFrameUp) {
        viewFrameUp=YES;
        self.navigationController.navigationBar.alpha=0;
        self.view.frame = CGRectOffset(self.view.frame, 0, -self.navigationController.navigationBar.frame.size.height);
      }


    CGPoint point = [textField.superview convertPoint:CGPointMake(0, 0) toView:maintable];
    CGPoint contentOffset = maintable.contentOffset;
    contentOffset.y=point.y-10.0-self.navigationController.navigationBar.frame.size.height; // Adjust this value as you need
    [maintable setContentOffset:contentOffset];
    [UIView commitAnimations];

}


if ([cellTextFields indexOfObject:textField]==0) {
    [keyBoardControl setEnabled: NO forSegmentAtIndex:0];
    [keyBoardControl setEnabled: YES forSegmentAtIndex:1]; 
} else{
    [keyBoardControl setEnabled: YES forSegmentAtIndex:0];
    [keyBoardControl setEnabled: YES forSegmentAtIndex:1];   
}


}

Normal KeyboardCentred keyboard

1 Ответ

0 голосов
/ 21 февраля 2012

Для тех, кто случайно пришел к этой проблеме.Я нашел причину: я использовал следующие свойства CALayer для применения к слою представления, что не имеет никакого смысла и вызывает у меня эту проблему с пользовательским интерфейсом ... "masksToBounds: YES" не следует использовать вместе с тенями.

[myviewLayer setMasksToBounds:YES]

myviewLayer.shadowColor=...
myviewLayer.shadowOpacity=...
myviewLayer.shadowRadius=...
...