2

我正在尝试从屏幕顶部手动在 UIViewController 中包含的 UIView 中设置动画。此视图的高度为 150 像素。

我为它“折叠”和“展开”(如图所示)设置布局约束。当我想分别隐藏/显示时,我会在两个约束之间进行动画处理。

我在 IB 中使用视图左上角的简单 UILabel 设置了包含在此 UIViewController 中的视图。

CGFloat closeUpViewHeight = 150.f;
self.closeUpViewController = [[[CloseUpViewController_Phone alloc] initWithNibName:@"CloseUpViewController_Phone"
                                                                           bundle:nil]
                              autorelease];

[self addChildViewController:self.closeUpViewController];
[self.view addSubview:self.closeUpViewController.view];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.closeUpViewController.view
                                                      attribute:NSLayoutAttributeHeight
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:nil
                                                      attribute:NSLayoutAttributeHeight
                                                     multiplier:0.f
                                                       constant:closeUpViewHeight]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.closeUpViewController.view
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:1.f
                                                       constant:0.f]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.closeUpViewController.view
                                                      attribute:NSLayoutAttributeCenterX
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterX
                                                     multiplier:1.f
                                                       constant:0.f]];

self.expandedCloseUpViewConstraint = [NSLayoutConstraint constraintWithItem:self.closeUpViewController.view
                                                                  attribute:NSLayoutAttributeTop
                                                                  relatedBy:NSLayoutRelationEqual
                                                                     toItem:self.view
                                                                  attribute:NSLayoutAttributeTop
                                                                 multiplier:0.f
                                                                   constant:0.f];

self.collapsedCloseUpViewConstraint = [NSLayoutConstraint constraintWithItem:self.closeUpViewController.view
                                                                   attribute:NSLayoutAttributeBottom
                                                                   relatedBy:NSLayoutRelationEqual
                                                                      toItem:self.view
                                                                   attribute:NSLayoutAttributeTop
                                                                  multiplier:1.f
                                                                    constant:-1.f]; 

任何人都知道为什么产生的 UILabel 有别名问题?

在此处输入图像描述

4

1 回答 1

1

修复了我的问题,非常愚蠢的错误。

在我的视图控制器的设置中,我在 UIView 中添加了一个阴影,并且意外地继承了这个:

self.view.layer.masksToBounds = NO;
self.view.layer.shadowOffset = CGSizeMake(0, 2);
self.view.layer.shadowRadius = 3;
self.view.layer.shadowOpacity = 0.8;
self.view.layer.shouldRasterize = YES;  //<--- Don't rasterize.

删除该shouldRasterize行可解决此处的问题。

于 2012-12-17T17:50:23.983 回答