问题标签 [setneedsdisplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4984 浏览

iphone - 关于 UIView 的 setNeedsDisplay 的困惑

我有一个 UITableView* myTableView 的 ivar。我有从互联网加载的数据,所以当数据被加载时,我应该调用 [myTableView setNeedsDisplay],我知道我可以/应该调用 [myTableView reloadData] 但令人困惑的是调用 setNeedsDisplay 也应该工作但不起作用。

我只是在寻找关于 setNeedsDisplay 做什么的解释?在 UITableView 实例上调用时。

根据文档 setNeedsDisplay 在“下一个绘图周期”中调用 drawRect 。所以谁能告诉我下一个绘图周期是什么。

0 投票
2 回答
2542 浏览

objective-c - setNeedsDisplay *总是*重绘吗?

我使用 cocoa 编写了一个小的自定义视图应用程序。后来(是的,我知道这很糟糕)我只是问自己:这也适用于可可粉吗?当然 id 并没有立即起作用,我不得不更改类名等等。好吧,我在需要时使用NSTimersetNeedsDisplay:方法刷新了视图。在可可下工作得很好,但绝对不是在可可触摸下。

我无法向自己解释,我实际上不知道哪些代码行可以帮助某人解决问题。也许这里是计时器:

它的目标:

计时器每 30 毫秒调用一次,我使用 NSLog 进行了检查。

在这个drawRect:方法中,我实际上只是画了一些形状,没有做任何其他事情。以防万一有必要调用某种clearRect:方法。正如我所说,在可可下它起作用了。

0 投票
2 回答
1847 浏览

objective-c - UIImage 的 setNeedsDisplay 不起作用

当一个按钮被触摸时,我试图在 dataBuffer 的帮助下在 UIImage 上画一条线,但是 drawRect: .. methode 没有被调用。(所以,我想画的线没有出现)

我真的不知道问题出在哪里,所以我发布了更多代码。对于那个很抱歉。

顺便说一句,我正在开发一个基于视图的应用程序。

这是我的代码:

0 投票
1 回答
4934 浏览

objective-c - UIView 子视图中的 setNeedsLayout

我有一个UIViewControllerand in willRotateToInterfaceOrientation,我在打电话[self view] setNeedsLayout];

这个视图调用是它的子视图的 (a UIScrollView)layoutSubviews方法,但UIScrollView不调用layoutSubviews它的子视图。这是应该的样子吗?我想如果你调用setNeedsLayout一个视图,它会调用layoutSubviews每一个 subivew 和他们的 subviews ......

我是否必须手动覆盖layoutsubviewUIScrollView调用setNeedsDisplay每个子视图?

谢谢。

0 投票
2 回答
826 浏览

iphone - 如何在 iPhone 中为照片创建灵活的框架?

我尝试用一​​些小图片在我的 iPhone 应用程序中创建一个灵活的框架。CustomView 继承 UIView 并覆盖它的setFrame:方法。在 setFrame: 中,我尝试调用[self setNeedsDisplay];每次缩放照片时,此框架确实显示和更改,但有些东西效果不佳。代码及效果如下:

这是我用来绘制框架的图像,在 self.patternImage 的代码中


我的代码的效果


我的代码的效果


//旋转得到originImage的镜像,isHorization表示旋转方向 - (UIImage*)fetchMirrorImage:(UIImage*)originImage direction:(BOOL)isHorization{ CGSize imageSize = originImage.size; UIGraphicsBeginImageContext(imageSize); CGContextRef 上下文 = UIGraphicsGetCurrentContext(); CGAffineTransform 变换 = CGAffineTransformIdentity;

0 投票
1 回答
545 浏览

iphone - 设置需要显示不绘制

我想一次又一次地重复图像。但是当我运行我的代码时,它会崩溃并显示警告“MainViewController 可能无法响应 setneedsDisplay”并且“uiviewController 可能无法响应 initwithFrame”。这是我的代码。

提前致谢..

0 投票
1 回答
161 浏览

iphone - setNeedsDisplay 适用于 iPhone 但不适用于 iPad

有问题的视图是在 IB 中的根视图上创建的,并连接到 rootViewController 中的类方法。在视图的类方法中,我重写了 drawRect 来绘制它的内容。用户更改某些参数后,我正在从 rootViewController 的视图上调用 setNeedsDisplay。

在 iPhone 上,这可以正常工作。然而,在 iPad 上,类方法中的 drawRect 不会被调用。

我怀疑其原因与绘图周期有关。在 iPhone 上,用户用来更改参数的视图被推送到相关视图上方的屏幕上。在 iPad 上,这个视图被添加到上面的根视图中,而不是在有问题的视图之上。因此,当用于更改参数的视图关闭时,与 iPhone 不同,不会生成绘图循环,因此无效的视图不会更新。

我被困住了。任何帮助将不胜感激。

0 投票
1 回答
487 浏览

ios - setNeedsDisplayInRect: 动画方法的正确使用

我有一些视图控制器,它使用我自己的视图类和 XIB 接口,所以视图从编码器初始化。在那个视图控制器中,当我移动滑块时,它会重绘矩形,在初始状态矩形是全屏的,当我将滑块向左移动时,矩形的大小会按比例变小(从全屏到 10x14 连续 4 像素间隔)。“滑块确实改变了一个值”调用了一些方法,设置新的矩形大小结束发送“setNeedsDisplay”方法。如果我更改为“setNeedsDisplayInRect:”方法,它不会更新我在屏幕上需要的所有内容,会有一些伪影。但是通过调试它会像我想要的那样更新。尝试发送不同的矩形进行更新,例如:

和其他一些,同样的故事。我的问题是,我需要在 "setNeedsDisplayInRect:" 中发送哪个矩形?

第二个问题,如何加速/优化所有故事以获得更流畅的动画和更低的成本?

0 投票
3 回答
2176 浏览

ios - setNeedsDisplay 在块内不起作用

CMMotionManager用于检索加速度计数据。问题是加速度计数据会定期打印,视图中的实例变量会更改,但视图不会重绘。我检查过hv它不是 nil 并且一切都被钩住了。在块内调用 setNeedsDisplay 有问题吗?

0 投票
1 回答
964 浏览

uiscrollview - UIScrollView 子视图和 setNeedsDisplay

我有以下问题:

我有一个包含 UIScrollView 作为子视图的 UIView。(笔尖文件)。我以编程方式向 UIScrollView 添加了几个子视图(UIImageView),每个 UIImageview 都包含一个从网络异步加载的图像,因此我需要在下载图像时更新 scrollView。在负责图像获取的类中,我使用此代码宣传负责管理滚动视图的视图控制器

Ivar 数据是指向 ViewController 的指针。这个东西不起作用,没有重新加载scrollView 为了确保调用被触发,我在包含scrollView的viewController中编写了一个方法,在这个方法中我调用了setNeedsDisplay,

方法 updateView 被正确触发,我的意思是在每个 Image 下载后调用,但 scrollView 内容没有更新。在包含 scrollView 的 ViewController 中我没有实现 drawRect 方法,这可能是调用 setNeedsDisplay 后缺少更新的原因吗?

欢迎任何帮助/建议/参考等。在此先感谢