gpt4 book ai didi

ios - 如何在 IOS 中创建 Box-Shadow

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:58:07 25 4
gpt4 key购买 nike

我想设计一个这样的登录页面enter image description here

在 ios 中使用框阴影的页面中,我尝试了图层阴影 like this但是这个没有像上面的图片那样显示,请指导。

我试过了

imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
imageView.clipsToBounds = NO;

但它显示

enter image description here

提前致谢

更新

使用以下代码:

UIImageView *imag = (UIImageView*)[self.view viewWithTag:1];
imag = [[UIImageView alloc] initWithFrame:CGRectMake((screenWidth/100)*12, (screenHeight/100)*10, (screenWidth/100)*75, (screenHeight/100)*61)];
[imag setBackgroundColor:[UIColor whiteColor]];
[imag.layer setOpacity:0.4];
[imag.layer setShadowOpacity:1.0];
[imag.layer setShadowColor:[[UIColor blackColor] CGColor]];
[imag.layer setShadowOffset:CGSizeMake(0.0, 0.0)];
[imag.layer setShadowRadius:8.0];
[imag setClipsToBounds:FALSE];
[imag.layer setMasksToBounds:FALSE];
[self.view addSubview:imag];

ios 6 它显示如下图,但它在 ios 7 上工作

enter image description here

最佳答案

我的屏幕上有:

enter image description here

使用此代码段:

[_backgroundBoxWithShadow.layer setOpacity:0.4];
[_backgroundBoxWithShadow setBackgroundColor:[UIColor whiteColor]];
[_backgroundBoxWithShadow.layer setShadowOpacity:1.0];
[_backgroundBoxWithShadow.layer setShadowColor:[[UIColor blackColor] CGColor]];
[_backgroundBoxWithShadow.layer setShadowOffset:CGSizeMake(0.0, 0.0)];
[_backgroundBoxWithShadow.layer setShadowRadius:8.0];

[_imaginaryTextBoxWithShadow.layer setShadowColor:[[UIColor blackColor] CGColor]];
[_imaginaryTextBoxWithShadow.layer setShadowOffset:CGSizeMake(-4.0, 4.0)];
[_imaginaryTextBoxWithShadow.layer setShadowRadius:4.75];
[_imaginaryTextBoxWithShadow.layer setShadowOpacity:0.4];

注意:没有一个 View 包含另一个 View ,它们是同一 superview 中的兄弟。然而,在我看来,结果看起来与原始屏幕截图相同——您仍然可以使用这些值来优化您最终希望的结果。


更新

您根据我的回答发布了您的代码片段“不工作”:

CGFloat screenWidth = self.view.bounds.size.width;
CGFloat screenHeight = self.view.bounds.size.height;

// BEGIN - your code
UIImageView *imag = (UIImageView *)[self.view viewWithTag:1]; // the line is pointless here, anyway...
imag = [[UIImageView alloc] initWithFrame:CGRectMake((screenWidth/100)*12, (screenHeight/100)*10, (screenWidth/100)*75, (screenHeight/100)*61)];
[imag setBackgroundColor:[UIColor whiteColor]];
[imag.layer setOpacity:0.4];
[imag.layer setShadowOpacity:1.0];
[imag.layer setShadowColor:[[UIColor blackColor] CGColor]];
[imag.layer setShadowOffset:CGSizeMake(0.0, 0.0)];
[imag.layer setShadowRadius:8.0];
// END - your code

[self.view addSubview:imag];

这就是它在我这边的 真正 iPhone5 上的样子,它看起来工作完美:

enter image description here

如果您的情况有所不同,请张贴有关它的屏幕截图(!)。


注意:您必须同时保留 View 的clipsToBounds 和图层的masksToBounds FALSE,否则阴影将被截断。


Interface Builder 中看起来是正确的:

enter image description here

或者您可以将其显式添加到您的代码中:

[imag setClipsToBounds:FALSE];
[imag.layer setMasksToBounds:FALSE];

iOS6.1更新

最终证明,您需要一个适用于 iOS6 的解决方案,我发现该解决方案在我的 iOS6.1 设备上同样有效:

[_backgroundBoxWithShadow.layer setOpacity:0.4];
[_backgroundBoxWithShadow setBackgroundColor:[UIColor whiteColor]];
[_backgroundBoxWithShadow.layer setShouldRasterize:TRUE];
[_backgroundBoxWithShadow.layer setRasterizationScale:[[UIScreen mainScreen] scale]];
[_backgroundBoxWithShadow.layer setShadowOpacity:1.0];
[_backgroundBoxWithShadow.layer setShadowColor:[[UIColor blackColor] CGColor]];
[_backgroundBoxWithShadow.layer setShadowOffset:CGSizeMake(0.0, 0.0)];
[_backgroundBoxWithShadow.layer setShadowRadius:8.0];

正如您可能在自己这边看到的那样,最终结果在 iOS6.1 上看起来是这样的:

enter image description here

关于ios - 如何在 IOS 中创建 Box-Shadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24996275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com