小编kar*_*man的帖子

setNeedsDisplay并不总是调用drawRect

我在自定义表格单元格中有自定义视图.每次更改自定义视图上的特定属性时,我都会调用[self setNeedsDisplay]该视图重绘视图- (void)drawRect:(CGRect)rect.该属性在表视图委托中设置tableView:cellForRowAtIndexPath:.但是当表格视图大于屏幕并且必须重复使用单元格时,drawRect每次都不会调用setNeedsDisplay.特别是当我快速拨动桌子时.慢滚动工作正常.这导致第一个和最后一个单元格中的信息通常不正确.

在日志中我可以看到,通常情况下,每次调用setNeedsDisplay有一个电话drawRect,但是当我滚动表视图很快有更多的呼吁setNeedsDisplay比drawRect.当然,这里应该有一对一的比例.

我在普通的UIView中使用相同的自定义视图,并且每次调用时它都会完美地重绘setNeedsDisplay.问题似乎与表视图和重用单元格隔离.

有谁知道这里发生了什么?有没有其他方法可以强制自定义视图重绘自己?

iphone cocoa-touch

10
推荐指数
2
解决办法
2万
查看次数

通过gitlab CI / CD在CloudFront上推送Jekyll网站时,如何解决“ s3_website”问题?

我已经在GitLabs中创建了Pipeline,并且我将docker用作gitlab-runner。我想将Jekyll网站推到s3网站上。为此,我正在使用s3_website gem。我在管道中定义了4个阶段。我在哪里构建Jekyll,使用Gulp创建工件,在jekyll站点上执行测试然后进行部署。

所有步骤都工作正常,但是在进行部署时,出现以下错误。而且我不知道如何解决这个问题。

[fail] Could not load the site: Failed to parse ERB in /builds/myproject/s3_website.yml:
       (SyntaxError) /usr/local/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_warn.rb:15: syntax error, unexpected tLABEL
           module_function define_method(:warn) {|*messages, uplevel: nil|
Run Code Online (Sandbox Code Playgroud)

当我不在Docker上时,它在我的本地计算机上运行良好。但是当我尝试使用docker做同样的事情时。这给了我以上错误。

我在docker机器上使用ruby 2.3、2.4、2.5、2.6进行了尝试。但是没有运气。

bundle exec s3_website push
Run Code Online (Sandbox Code Playgroud)

我希望这可以将站点部署在S3存储桶和相应的Cloudfront上。

任何线索将不胜感激。

ruby rubygems docker gitlab-ci

8
推荐指数
1
解决办法
359
查看次数

标签 统计

cocoa-touch ×1

docker ×1

gitlab-ci ×1

iphone ×1

ruby ×1

rubygems ×1