传感网灯闪烁代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传感网灯闪烁代码相关的知识,希望对你有一定的参考价值。
参考技术A 代码seekbar。核心在于使用的类改为PWMLED,不再是LED类了。在命令行界面运行python3 LED.pwn.py之后,可以看到LED灯全灭、半亮、全亮,间隔1s,交替运行。不写一行代码点亮LED灯在命令行界面使用pinout命令,输出各针脚定义。5v电压接1kΩ的电阻,接LED长脚正极,LED负极接(6)号GND地线负极,这样LED灯直接就会点亮,不写一行代码。
[self.tableview reloadData];导致闪烁
【中文标题】[self.tableview reloadData];导致闪烁【英文标题】:[self.tableview reloadData]; causes flickering 【发布时间】:2014-04-26 14:22:12 【问题描述】:问题是 UI 出现然后更新:产生闪烁效果。
我希望用户界面只在用户进入应用程序时更新一次,因此我已经在 ViewDidLoad 中重新加载。这是代码。任何帮助如何消除这种闪烁...一些代码示例会有所帮助。
- (void)viewDidLoad
[super viewDidLoad];
self.myTableView.dataSource = self;
self.myTableView.delegate = self;
PFQuery * getCollectionInfo = [PFQuery queryWithClassName:@"Collection"]; // make query
[getCollectionInfo orderByDescending:@"updatedAt"];
[getCollectionInfo setCachePolicy:kPFCachePolicyCacheThenNetwork];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^
[getCollectionInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
if (!error)
CollectionQueryResult = (NSMutableArray *)objects;
[self.tableView reloadData];
// whenevr get result
else
//no errors
];
);
【问题讨论】:
您的问题是什么,请详细说明您的问题。 问题是 UI 出现然后更新:产生闪烁效果。 我需要更新单元格,而不需要完整的 TableView 闪烁 .. 我提到了这个 ***.com/questions/11631104/… 但没有帮助 【参考方案1】:你为什么不简单地调用 reloadSections 方法而不是 [self.tableView reloadData];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
【讨论】:
tableview 上的图像仍然在闪烁。【参考方案2】:参考cellForRowAtIndexPath
委托方法。您可能正在执行一些可能导致轻弹的操作。就我而言,我正在设置带有动画的图像视图的图像。所以每当我重新加载表格时,它都会因为那个动画而闪烁。
我删除了那个动画并为我工作..
【讨论】:
【参考方案3】:希望以下几行可以帮助您解决延迟和闪烁问题
dispatch_async(dispatch_get_main_queue()
, ^
[self.tableView reloadData];
);
【讨论】:
其实tableview默认只重新加载可见单元格 我知道我需要这样做。 '[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationNone];' 但这会产生错误: 'NSInternalInconsistencyException',原因:'无效更新:第 0 节中的行数无效。 这将停止与后台线程相关的崩溃,但不会停止刷新闪烁【参考方案4】:您的下载是异步的,因此在显示视图之前不会完成。因此,CollectionQueryResult
中的任何内容都会显示出来。
你可以:
-
清除
CollectionQueryResult
以便在您获得更新之前不会填充表格
比较CollectionQueryResult
和objects
,然后只更新数据发生变化的可见单元格(在设置CollectionQueryResult
之前)
请注意,对于选项 2,您还需要比较 CollectionQueryResult
和 objects
的计数,然后根据需要从表视图中插入/删除行。选项 2 的重点是不要调用reloadData
,所以你需要做更多的工作......
如果您获得可见单元格并直接更新它们,您也可以避免调用reloadRowsAtIndexPaths
(这样可以避免发生任何动画)。见cellForRowAtIndexPath:
。
【讨论】:
我知道我需要这样做。[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationNone];
但这会产生错误: 'NSInternalInconsistencyException',原因:'无效更新:无效第 0 节中的行数。
如何处理这个错误,因为我没有通过。手动行数
委托方法中返回的行数。如果你更新CollectionQueryResult
那么你需要根据CollectionQueryResult
的新旧内容的不同来调用reloadRowsAtIndexPaths
、insertRowsAtIndexPaths
和deleteRowsAtIndexPaths
以上是关于传感网灯闪烁代码的主要内容,如果未能解决你的问题,请参考以下文章
在没有 R/W 保护的情况下闪烁代码后 STM32 闪烁禁用