- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用以下代码创建 UIRefreshControl
:
_refreshControl = new UIRefreshControl();
_refreshControl.ValueChanged += RefreshTriggered;
_collectionView.InsertSubview(_refreshControl, 0);
而且我不知道为什么 UIRefreshControl
被绘制在 UICollectionViewCell
上。
这是我刚刚添加刷新控件时 UICollectionView
的 subview :
[0]: {<UIRefreshControl: 0x7c132fe0; frame = (0 0; 594 60); hidden = YES; autoresize = W; layer = <CALayer: 0x7c133250>>}
[1]: {<UIImageView: 0x79f8a5d0; frame = (3 588.5; 588 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x79f89a70>> - (null)}
[2]: {<UIImageView: 0x79fab7d0; frame = (588.5 584; 2.5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x796171f0>> - (null)}
这是在 UICollectionView 中加载项目时的 subview :
[0]: {<MovieCollectionViewCell: 0x796e7350; baseClass = UICollectionViewCell; frame = (0 0; 183 278.16); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7c244bc0>>}
[1]: {<MovieCollectionViewCell: 0x7c2b5850; baseClass = UICollectionViewCell; frame = (186 0; 183 278.16); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7c2b5950>>}
[2]: {<MovieCollectionViewCell: 0x7c2ba7d0; baseClass = UICollectionViewCell; frame = (0 281; 183 278.16); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7c2ba8d0>>}
[3]: {<MovieCollectionViewCell: 0x7c2bf440; baseClass = UICollectionViewCell; frame = (186 281; 183 278.16); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7c2bf540>>}
[4]: {<MovieCollectionViewCell: 0x7c2c42d0; baseClass = UICollectionViewCell; frame = (0 562.5; 183 278.16); clipsToBounds = YES; hidden = YES; opaque = NO; layer = <CALayer: 0x7c2c43d0>>}
[5]: {<MovieCollectionViewCell: 0x7c2c9160; baseClass = UICollectionViewCell; frame = (186 562.5; 183 278.16); clipsToBounds = YES; hidden = YES; opaque = NO; layer = <CALayer: 0x7c2c9260>>}
[6]: {<UIRefreshControl: 0x7c132fe0; frame = (0 -69.5; 369 60); autoresize = W; layer = <CALayer: 0x7c133250>>}
[7]: {<UIImageView: 0x7c159e80; frame = (3 522; 363 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x7c159fb0>> - (null)}
[8]: {<UIImageView: 0x7c15a480; frame = (363.5 -66.5; 2.5 224); opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x7c15a5b0>> - (null)}
有什么想法吗?
最佳答案
像这样在布局过程之后尝试将 refreshControll
发送到后面:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
[self.collectionView sendSubviewToBack:self.refreshControl];
}
因为 UITableView
和 UICollectionView
重用了它们的单元格,所以它们有一种非常特殊的方式来布置它们的 subview (可能通过自定义实现 layoutSubviews
).因此,您插入自定义 subview 的位置通常不会在布局过程后保留。这就是为什么您必须覆盖 viewDidLayoutSubviews
并将您的 View 放回您想要的位置。
UIRefreshControll
被UITableView
自动检测并放回其他 subview 后面,但UICollectionView
不是这样,你必须这样做手动。对于任何其他自定义 subview ,您必须同时为 UITableView
和 UICollectionView
执行此操作。
关于c# - UIRefreshControl 显示在 UICollectionViews 单元格上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273670/
在我的 UIViewController , 我有一个 UITableView作为 subview 之一。我添加我的 UIRefreshControl使用以下代码: // enable "pull t
我在我的 TableView 中使用 UIRefreshControl 来提取新数据。但是当我定义控件时,下面的错误显示。我用谷歌搜索了一段时间,但没有找到任何有用的信息。 我使用 Xcode 版本
我正在尝试将 UIRefreshControl 移动到我的 headerView 之上,或者至少让它与 contentInset 一起使用。有谁知道如何使用它? 在 TableView 中滚动时,我使
我正在尝试在 UIViewController 中实现 UIRefreshControl。我无法使用 UITableViewController,因为 tableView 只是我的 viewContr
我需要创建一个完全自定义的 UIRefresh控制。动画、图像、下拉量等... 我最初的想法是从头开始,使用 UIViewController,向其中添加我自己的 View ,通过访问 UIScrol
我在 iOS 8 下实现 UIRefreshControl 时遇到了一种闪烁。每次我第一次到达 tableView 的顶部时(即应用程序刚刚启动时),我都会看到下面的 gif 中显示的闪烁。这不会发生
因此,我在 Storyboard 中启用了表格 View 的刷新功能,并将此代码放入 viewDidLoad() 中: refreshControl?.addTarget(self, action:
当我慢慢下拉刷新时,它得到的新内容的顺序不正确。 此外,当我拉刷新时它所堆叠的触发器不会给出任何错误,它只是在 3 个单元格下加载新内容。 import UIKit class ViewControl
我想触发refreshControl在tableView从服务器初始化其数据时自动显示,并且我在这个问题上尝试了多种方法 UIRefreshControl - beginRefreshing not
我已以编程方式将 UIRefreshControl 作为 subview 添加到我的 UICollectionView 中。 lazy var refreshControl: UIRefreshCon
我有一个包含用户帖子的表格 View 。每个帖子都有图片、用户名和帖子本身。刷新控件的操作是使用来自 Parse 的数据重新加载表。除了拉动刷新时的极度延迟外,一切都完美无缺。不知道是因为每个单元格里
目前,我有一个正在使用 UIRefreshControl 的应用程序。 不过我遇到了一些问题...... 这是我的代码: - (void)viewDidLoad { [super viewDi
我为 UICollectionView 实现了一个 UIRefreshControl,这样用户可以通过拉动来刷新 UICollectionView 中的内容。我正在 iPad 模拟器上进行测试。 在第
我有一个带有 TableView 和刷新控件的 View Controller 。当我在刷新过程中旋转屏幕时,刷新控制杆。我试图在 viewWillTransition 和 tableview.ref
我有一个 UITableView,它在 UIViewController 的委托(delegate)上添加了一个新项目,插入了行。该行已正确插入。 但是,之后拖动 UITableView 时,UITa
拉动刷新并没有消失。屏幕上只有 3 行可见,使用 print(indexPath.row) 后我可以看到它再次重新加载行 0、1、2,但刷新控件没有消失。 override func viewDidL
我在 UITableViewController 中有一个 UIRefreshControl。有什么方法可以检测用户是否开始向下拖动 View 以刷新内容?我指的不是 beginRefreshing
我的项目仍在使用 Swift 2.3,尚未迁移到 Swift 3。当我使用以下代码下拉 TableView 时,我可以验证在调试区域中可以看到刷新的数据,但它不会反射(reflect)在 TableV
我做了一个UIRefreshControl: refresher = UIRefreshControl() refresher.attributedTitle = NSAttributedString
今天刚开始使用“UIRefreshControl”,发现了一些奇怪的事情。 如果我在 InterfaceBuilder 中创建了 UIRefreshControl,并将其连接起来,我的选择器将永远不会
我是一名优秀的程序员,十分优秀!