- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我对我的问题做了一些研究,不幸的是我的问题没有解决方案。最接近的是 Fade UIImageView as it approaches the edges of a UIScrollView但它仍然不适合我。
我希望我的 table 在顶部应用“隐形渐变”。如果单元格距离顶部边缘 50 像素,它就会开始消失。它越靠近上边缘,该部分就越不可见。单元格高度约为 200 像素,因此单元格的下半部分需要 100% 可见。但没关系 - 我需要一个 TableView (或 TableView 容器)来完成这项任务,因为类似的表可以显示其他单元格。
如果表格是纯色 View 的 subview ,我可以通过添加水平渐变图像来实现,我可以将其拉伸(stretch)到任意宽度。该图像的顶部像素从背景的确切颜色开始,向下移动相同的颜色具有更少的 alpha。
可是……我们有一个具有透明颜色 的 UITableView。表格下方没有纯色,而是图案图像/纹理,在应用的其他屏幕上也可能有所不同。
您知道我如何实现这种行为吗?
问候
最佳答案
我拿了this教程并做了一些修改和补充:
1. 首先导入 QuartzCore
并在 Controller 中设置 mask 层:
编辑:不需要在类中引用 CAGradientLayer
。
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface mViewController : UIViewController
.
.
@end
2. 将此添加到 viewWillAppear
viewDidLayoutSubviews
:(查看@Darren 对此的评论)
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
if (!self.tableView.layer.mask)
{
CAGradientLayer *maskLayer = [CAGradientLayer layer];
maskLayer.locations = @[[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0]];
maskLayer.bounds = CGRectMake(0, 0,
self.tableView.frame.size.width,
self.tableView.frame.size.height);
maskLayer.anchorPoint = CGPointZero;
self.tableView.layer.mask = maskLayer;
}
[self scrollViewDidScroll:self.tableView];
}
3.通过将它添加到 Controller 的 .h
中,确保您是 UIScrollViewDelegate
的委托(delegate):
@interface mViewController : UIViewController <UIScrollViewDelegate>
4. 最后,在您的 Controller .m
中实现 scrollViewDidScroll
:
#pragma mark - Scroll View Delegate Methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
NSArray *colors;
if (scrollView.contentOffset.y + scrollView.contentInset.top <= 0) {
//Top of scrollView
colors = @[(__bridge id)innerColor, (__bridge id)innerColor,
(__bridge id)innerColor, (__bridge id)outerColor];
} else if (scrollView.contentOffset.y + scrollView.frame.size.height
>= scrollView.contentSize.height) {
//Bottom of tableView
colors = @[(__bridge id)outerColor, (__bridge id)innerColor,
(__bridge id)innerColor, (__bridge id)innerColor];
} else {
//Middle
colors = @[(__bridge id)outerColor, (__bridge id)innerColor,
(__bridge id)innerColor, (__bridge id)outerColor];
}
((CAGradientLayer *)scrollView.layer.mask).colors = colors;
[CATransaction begin];
[CATransaction setDisableActions:YES];
scrollView.layer.mask.position = CGPointMake(0, scrollView.contentOffset.y);
[CATransaction commit];
}
同样:大部分解决方案来自 this cocoa 动力学教程。
关于ios - 淡化 UITableView 的边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570247/
我有一些 div 垂直对齐内部的 display: table 和 display: table-cell。无论如何,问题是,当我通过 fadeTo() 或 fadeIn 使用 jQuery 设置不透
使用 jQuery,我想在“框”中循环显示 3 个不同的背景图像和 3 组文本,每 6 秒淡出到下一个。 CSS: .box { background: url(/filepath/to/image.
点击背景更改为图像或颜色。为此,首先我为 body 创建了两个类: body.bg-color { background-color:red; } body.bg-img { back
正如标题所说,我想要实现的是在 "Patch "+ $Patch_next 字符串中淡入淡出,而不是在悬停时立即显示它。 if(isset($Patch_next)){
我正在创建一个导航并且已经为按钮制作了 CSS 属性。 我想在静态按钮属性之上淡入悬停属性。 这样做最有效的方法是什么? CSS 看起来像这样: Home
我已经能够淡化 div 的顶部,但我无法让底部也淡化。我想我可以反转我用来淡化顶部的 css,但它不起作用。 HTML: LOCATIONS CSS .contai
我想创建一个特定大小的列表,但它的内容可能比列表大。 我认为如果列表中有元素并且它们在底部和顶部淡出,同时为也包含该列表的容器提供背景图像,那将会非常漂亮。事实证明,这比预期的要难,而且我很难为此类事
我对我的问题做了一些研究,不幸的是我的问题没有解决方案。最接近的是 Fade UIImageView as it approaches the edges of a UIScrollView但它仍然不
大家好,我在淡出 HTML 文档中的 Div 时遇到了问题。我能够使用相反的相同功能,并且能够根据需要淡入但不能淡出 div。有什么想法吗? 这是 JavaScript 函数: function fa
我对 Java 和 SWT 还很陌生,希望能将一幅图像融入到另一幅图像中。我现在在标签中有一张图片(相关代码): Device dev = shell.getDisplay(); try {
这个问题在这里已经有了答案: How to set gradient color to the background of UILabel in iPhone (2 个答案) 已关闭 8 年前。
我想下载 zip 并解压。当我下载 zip 时,一切正常。但是,当解压缩时,我的界面会停止几秒钟,有时应用程序会崩溃。如何解决? Zip 文件大小 650 MB downloadButton - 单击
我想使用 jquery 淡入一个 div,但它不起作用。如果我将“fout”(这是我想要淡入的元素)的可见性设置为隐藏,那么它不会显示任何内容,尽管消息仍然存在,因为我可以看到滚动条在移动。知道为什么
我目前有一个填充了用户 friend 的 tableView。 tableView 是 TableViewController 的一部分,它可以正常运行。我希望 tableview 在最底部永久淡化,
我有一个我正在尝试构建的 CSS 下拉菜单,下拉菜单的背景有一个褪色/锥形框阴影: 我无法实现如何让方框阴影真正变细/淡出。 这是我现在所在的位置:http://jsfiddle.net/Shpigf
我正在寻找一种在 Unity 中淡化 TextMesh-Text 的 alpha 值的方法,但我无法在线找到解决方案,也无法在 LeanTween Documentation 中找到解决方案。 . L
如何使用 jQuery 淡化 div 的边缘?想象一个内部有图像的旋转木马,可以水平滑动。如何淡出左右两侧,使边缘附近的图像逐渐消失。 希望它是清楚的。 :) 最佳答案 Webkit 浏览器(即 Ch
我发现与 Javascript 无关的默认智能感知建议。 native 浏览器功能太多I will never use . 有没有办法关闭/限制智能感知?例如隐藏浏览器方法,如上面链接中的方法。 最佳
我正在尝试淡出 detailView 中 UIWebView 的底部。它更像是褪色最后 20-40 像素。我正在为“ReadMoreFade”(link)使用 CSSTricks 代码。下面粘贴了我的
我想创建一个显示成功消息的模态弹出窗口(针对移动设备)。 我目前正在为整个内容添加一个不透明的背面叠加层,使用 .overlay { position:fixed; top:0px;
我是一名优秀的程序员,十分优秀!