【问题标题】:UIView create a inner shadowUIView 创建内阴影
【发布时间】:2012-03-20 08:33:15
【问题描述】:

我想获得这样的UIView

但我不知道,最好的方法是什么?

这是最好的方法:https://stackoverflow.com/a/9214570/1228634 吗?

【问题讨论】:

    标签: iphone objective-c cocoa ios5 uiview


    【解决方案1】:

    将阴影创建为特定大小的透明层,同时创建一个可拉伸的图像,如下所示:

    UIImage *shadowImage = [UIImage imageNamed:@"shadow.png"];
    shadowImage = [shadowImage stretchableImageWithLeftCapWidth:floorf(shadowImage.size.width/2) topCapHeight:floorf(shadowImage.size.height/2)];
    

    将图像放在 UIImageView 中,并以 contentMode 作为比例来适应。

    将您的视图称为“sView”。您可以像这样添加阴影:

    UIImageView *shadowImgView = [[UIImageView alloc] initWithImage:shadowImage];
    shadowImgView.contentMode = UIViewContentModeScaleToFill;
    shadowImgView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    shadowImgView.frame = sView.bounds;
    [sView shadowImgView];
    [shadowImgView release]; // only needed if you aren't using ARC
    

    【讨论】:

    【解决方案2】:

    您可以尝试使用多张图片(因为它适用于 html),但我认为它并不比您的示例更好:

    • 您需要 4 张小图片来制作顶部、左侧、右侧和底部边框的纹理
    • 您的视图角需要 4 张图片;
    • 使用重复从前 4 个图像绘制边框;
    • 绘制角落图像。

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 2019-02-07
      • 2014-07-08
      相关资源
      最近更新 更多