问题标签 [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 投票
3 回答
622 浏览

ios - UIPickerView 不会立即重绘未选中的行

我有一个特殊UIPickerView的地方,通过点击它手动选择行。发生这种情况时,所选行的样式会更改(文本颜色更改并显示带有复选标记的图像)。同样,如果选择了另一行,则先前选择的行被“取消选择”,即它的样式更改为正常。

现在,当我选择一行时,它看起来是正确的:

在此处输入图像描述

但是,当我滚动到另一行并且所选行不再位于中间时,不会应用新样式(应在此处选择 Antarktis):

在此处输入图像描述

但是,如果我进一步向下滚动几行然后备份它会将行更新为正确的样式:

在此处输入图像描述

取消选择时我有同样的问题。如果我选择另一行,旧行似乎没有被取消选择,我得到了这个(现在应该取消选择 Antarktis):

在此处输入图像描述

但是,如果我将 Antarktis 行向后滚动到中间,它确实被取消选择了。所以我的问题是UIPickerView不会立即重绘可见但不在中间的行(它们可能以某种方式缓存)。它们仅在特定行消失然后返回或显示全新行时才会重绘。

那么我可以强制它重绘那些行吗?我尝试在和特定行(它们是 的子类)上调用该setNeedsDisplay方法,但它什么也没做。UIPickerViewUITableViewCell

谢谢!

0 投票
2 回答
344 浏览

ios - UIViews SetNeedsDisplay 未调用

新手警告!: ) 我的应用程序中有多个视图,所有视图都设置在故事板中,并且都有自己的子类 UIView 类和自己的覆盖 drawRect 方法。其中一个用作按钮,并且能够通过 setneedsdisplay 重绘自身并调用另一个 UIViews 类的函数:

现在的问题是该函数中的 setNeedsDisplay 不起作用,即使调用了 updateModell 函数:

所以我用谷歌搜索和搜索,但就是不知道出了什么问题。是的,这是我使用 Swift 和 iOS 的第一周……

0 投票
1 回答
186 浏览

subview - 将子视图中的Objective C drawRect添加到超级视图和setNeedsDisplay后未调用

我有一个视图:DragView和一个视图:GameAreaView,并在GameViewController中声明GameAreaView

问题是我的自定义子视图: DragView 没有按预期绘制矩形,在超级视图中没有绘制任何内容。

游戏视图控制器.m

游戏区视图.m

DragView.m -(id) initwithFrame::(CGRect)frame

但是如果我 initwithFrame更改为initwithImage

GameAreaView中显示图像的子视图,没有使用drawRect。

我也尝试过使用setNeesDisplayInRect,没有任何变化。

为什么使用 -(id)initwithFrame 时DragView.m中的 drawRect没有被调用?为什么会发生这种情况?以及如何解决?

0 投票
4 回答
280 浏览

ios - Swift-NSTimer & setNeedDisplay

我想知道如何在 swift.thank 中编写上面的代码。

0 投票
1 回答
913 浏览

ios - 调用 setNeedsDisplay 时的 Swift 奇怪行为

我正在制作一个模拟发动机油门的应用程序。当我滑动 UISlider 时,我希望 RPM 量规指针增加并且 RPM 量规内的 UILabel 更新。除了一个奇怪的部分外,我的一切都正常工作:UILabel 中的文本会覆盖自身(即,它会将自身绘制在自身之上,因此所有值都相互叠加并且不可读)。这是我的 ViewController 中的滑块代码:

然后在 compactEngineView 本身:

指针完美运行。没什么好抱怨的。但是每次我移动滑块时,文本都会自动覆盖。DrawRect 部分中的 UILabels 有单独的技巧吗?谢谢!

0 投票
2 回答
1157 浏览

ios - 如果我经常调用 setneedsdisplay,drawrect 多久会被调用一次?这是为什么?

就我而言,在drawRect:调用每个单曲后不会立即setNeedsDisplay调用。例如,我认为以下代码与我的情况相同。

0 投票
1 回答
858 浏览

ios - 使用 setNeedsDisplay 重新加载 Tableview 不起作用

我在视图中有一个表格视图,其中列出了将执行的所有步骤。我想在执行步骤时显示一个已标记的步骤。我面临的问题是表格视图在程序执行完所有步骤之前不会刷新。因此,所有步骤同时显示为标记。

这是我的功能,当用户按下按钮时开始运行:

MyView 是视图 IBOutlet。MyTableView 是表视图 IBOutlet。我也试过 [self.view setNeedsDisplay] 和 [self.view setNeedsDisplay]。MyTableView setNeedsDisplay] 但这也不起作用。我还尝试从表格视图中获取单元格并对单元格本身进行更改。在程序完全执行完成之前,什么都不会刷新...

有人可以告诉我我做错了什么吗?我是 iOS 开发的新手,我搜索、阅读、尝试过……但到目前为止还没有找到答案。

0 投票
1 回答
355 浏览

ios - 重新加载 UIView 和 UILabel 框架

我在 nib 文件中有两个UILabels和一个。UIView这个笔尖是我的collectionView. 在我的viewForSupplementaryElementOfKind:方法中,我需要更改这三个对象的框架。它们正在根据header.personCollege标签的大小进行更改。

问题是setNeedsDisplay不改变框架。框架仅在调用 后更改reloadData。我需要立即改变框架。我也在使用自动布局。

0 投票
1 回答
1680 浏览

ios - 如何在 SWIFT 中重绘我的视图?

在我的 iPad 应用程序上,我有一个 UIViewController 和一个打开 modalView 的按钮。

当我用dismissViewControllerAnimated关闭modalView时,我想“刷新”我的视图控制器(因为我添加了新内容)。但由于模态视图是“表单”样式,因此不会调用 viewDidAppear 或 viewWillAppear。

我尝试使用 setNeedsDisplay,但它不起作用。

我不知道该怎么做。

0 投票
1 回答
521 浏览

ios - JSON请求后用新数据刷新视图控制器

在另一个线程中完成 JSON 请求后,我试图刷新视图控制器中的显示。数据正确刷新,但视图没有。我在数据拉取方法结束时尝试 setNeedsDisplay,但它因 NSRangeException 索引 0 超出范围而崩溃。我认为这是因为上面的视图控制器没有正确实例化,或者当前视图没有被释放。ARC 已开启。

我也尝试[vc.view viewDidLoad]过同样的结果。

上面的代码位于(void)mainJSON pull 方法的末尾。