滚动时setNeedsStatusBarAppearanceUpdate()似乎卡住了我应用的主队列

时间:2019-10-10 09:14:09

标签: ios objective-c

在Xcode 11和iOS 13中,当用户滚动我的应用程序中的tableview或scrollview时,我必须更改状态栏样式。

当我将视图滚动到某个阈值时,我调用setNeedsStatusBarAppearanceUpdate :,但它似乎卡住了我的应用程序,并且CPU使用率飙升至70%〜90%。

///这是一个简单的UITableviewController,单元格只更改了backgroundColor

console.log('Loading function');

const https = require('https');
const url = require('url');
const slack_url = 'https://hooks.slack.cosm/etc';
const slack_req_opts = url.parse(slack_url);
slack_req_opts.method = 'POST';
slack_req_opts.headers = {'Content-Type': 'application/json'};

exports.handler = function(event, context) {
  (event.Records || []).forEach(function (rec) {
    if (rec.Sns) {
      var req = https.request(slack_req_opts, function (res) {
        if (res.statusCode === 200) {
          context.succeed('sns posted to slack');
        } else {
          context.fail('status code: ' + res.statusCode);
        }
      });

      req.on('error', function(e) {
        console.log('problem with request: ' + e.message);
        context.fail(e.message);
      });

      req.write(  JSON.stringify({text: JSON.stringify(rec.Sns.Message, null, '  ')})  ); 

      req.end();
    }
  });
};

enter image description here 有什么方法可以顺利实现需求?

1 个答案:

答案 0 :(得分:0)

改为使用

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView 
                     withVelocity:(CGPoint)velocity 
              targetContentOffset:(inout CGPoint *)targetContentOffset;

scrollViewDidScroll对于每个contentOffset更改都会被永久调用。