在屏幕ios7之间转换时边缘闪烁

时间:2014-02-05 10:09:09

标签: ios objective-c ios7 xcode5 flicker

升级到xcode 5后,我注意到在两个屏幕之间转换时屏幕边缘有一个闪烁。闪烁在框架边缘显示为垂直白线。这似乎只发生在ios7上。

我在两个屏幕之间的过渡是通过故事板segue。

更新:

我通过添加以下内容修复了此问题: self.view.clipsToBounds = YES; 我的观点。

4 个答案:

答案 0 :(得分:11)

我想出了这个问题。我必须在我的观看次数上设置clipsToBoundsYES。这解决了这个问题。

答案 1 :(得分:0)

当您尝试从后台更新UI时,iOS7中会出现此问题。为了避免上述情况,您应该使用GCD方法更新UI,如下所示。

dispatch_sync(dispatch_get_main_queue(), ^{
      // Update UI (e.g. Alert, label changes etc)
});

dispatch_async(dispatch_get_main_queue(), ^{
      // Update UI (e.g. Alert, label changes etc)
});

这将确保在主队列中更新。

答案 2 :(得分:0)

我在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];



}

答案 3 :(得分:0)

好的,我已经在我的情况下解决了这个问题。

我在Container View中有一些自定义UIView。容器视图将背景颜色(可能是我不小心这样做)设置为白色。在转换之间,我看到白线闪烁(有时,随机)。当我将Container的View颜色设置为Default时,转换上的闪烁消失了。