在iOS 7中的导航栏按钮项上使用NSShadow

时间:2013-12-06 21:39:58

标签: ios ios7 nsshadow

我有一个看起来像这样的导航栏:

enter image description here

它是使用以下代码创建的:

//  AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    
    NSShadow *textShadow = [[NSShadow alloc] init];
    textShadow.shadowBlurRadius = 5.0;
    textShadow.shadowColor = [UIColor colorWithWhite: 1.0 alpha: 0.75];
    textShadow.shadowOffset = CGSizeMake(0.0, 1.0);
    [[UIBarButtonItem appearance] setTitleTextAttributes: @{ NSShadowAttributeName: textShadow } forState: UIControlStateNormal];

    return YES;
}

问题

  1. shadowBlurRadius在哪里(至少对于“编辑”按钮)?请注意,我设置了textShadow.shadowBlurRadius = 5.0;。提高这个价值似乎也没有做任何事情。
  2. 是否可以在“+”栏按钮项或其他不是文本的栏按钮项(例如UIBarButtonSystemItemCamera)中添加阴影?我想避免生成自己的栅格化图像。
  3. 此问题仅适用于iOS 7。

1 个答案:

答案 0 :(得分:1)

实际上你的影子正在UIBarButonItem&您可以在“编辑”栏按钮项目文本中看到白色阴影。如果你想使用更好的阴影外观,请尝试使用CGSizeMake中的值在-1,1,0范围内播放

textShadow.shadowOffset = CGSizeMake(0.0, -1.0);

有点棘手,但要向右侧栏按钮项添加阴影,请将UIBarButton标题为+&将其分配给导航项目的rightBarButton&您将看到左侧栏按钮项目中的阴影效果。

Hopw有帮助。