在屏幕ios7之间转换时边缘闪烁
升级到xcode 5后,我注意到在两个屏幕之间转换时屏幕边缘有一个闪烁。 闪烁在框架边缘显示为垂直白线。 这似乎只发生在ios7上。
我在两个屏幕之间的过渡是通过故事板segue。
更新:
我通过添加:self.view.clipsToBounds = YES修复了这个问题。 对我的看法。
我想出了这个问题。 我必须在视图clipsToBounds
设置为YES
。 这解决了这个问题。
当您尝试从后台更新UI时,iOS7中会出现此问题。 为了避免上述情况,您应该使用GCD
方法更新UI,如下所示。
dispatch_sync(dispatch_get_main_queue(), ^{ // Update UI (eg Alert, label changes etc) });
要么
dispatch_async(dispatch_get_main_queue(), ^{ // Update UI (eg Alert, label changes etc) });
这将确保在主队列中更新。
我在iOS7中遇到了tableView Segues这个问题,而clipsToBounds BOOL对我没有任何帮助。 对我来说,修复是通过在viewDidAppear中加载我的背景图像而不是viewDidLoad。 示例如下:
- (void)viewDidLoad { [super viewDidLoad]; tableData = [NSArray arrayWithObjects:@"First", @"Second", @"Third", nil]; [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; UIEdgeInsets inset = UIEdgeInsetsMake(5, 0, 0, 0); self.tableView.contentInset = inset; //Don't load your background image or color here } -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [[AppDelegate sharedInstance] setNavTitle:@"Title"]; //load your background image here self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"FirstViewBackground"]]; self.tableView.backgroundColor = [UIColor clearColor]; }
好的,我已经在我的情况下解决了这个问题。
我在Container View中有一些自定义UIView。 容器视图将背景颜色(可能是我不小心这样做)设置为白色。 在转换之间,我看到白线闪烁(有时,随机)。 当我将Container的View颜色设置为Default时,过渡时闪烁消失。