jjzjj

setNeedsDisplay

全部标签

ios - 为什么我的 CGImage 在 setNeedsDisplay 后不能正确显示

我正在我的应用程序中绘制一个colorWheel。为此,我在一个单独的函数中生成一个CGImage,并在drawRect中使用CGContextDrawImage将其显示在屏幕上。在初始演示中它看起来不错,但在我调用setNeedsDisplay(或setNeedsDisplayInRect)后图像变黑/变形。我一定是在做一些愚蠢的事情,但看不到什么。DrawRect代码如下:overridefuncdrawRect(rect:CGRect){ifletcontext=UIGraphicsGetCurrentContext(){letwheelFrame=CGRectMake(0,0,

iphone - 如何以编程方式刷新 UIViewController?

我有一个ViewController,用户可以在其中从UIScrollView中选择一张卡片(自定义UIButton)。我已经截获了选择卡片的触摸事件并进行了识别,然后从数据源中移除了它,但它仍然存在于UISubView中。我该如何摆脱它?刷新View应该显示它已从View中删除。我该怎么做? 最佳答案 您可以在以下两个地方之一进行:在你的ViewController中直接在View中你需要调用函数setNeedsDisplay如果您从viewController执行此操作,则[yourViewOutletVariable/view

objective-c - setNeedsDisplay 在一个大的 UIView 导致

我有一个非常大的UIView,大小约为3000x3000。在这个大View中,我用手写笔或手指在iPad上进行了一些自由形式的绘图。这是我的触摸开始和移动方法的代码。-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{Line_Point*to_be_added=[[Line_Pointalloc]init];to_be_added.line_color=[UIColorcolorWithCGColor:current_color.CGColor];to_be_added.line_pattern=[NSString

iOS:如何让后台线程在主线程上重绘 View

我的应用程序将查询数据库50次,然后通过将正确的UIImageView添加到另一个UIImageView做出相应的react,然后我希望应用程序在每个循环中立即显示它。唉,经过很多个晚上我都没有让它工作。应用程序不会立即显示UIImageView。话虽如此,当我在中间循环期间放大或缩小时,UIImageViews将会出现!我一定是错过了什么......到目前为止,除了最后一部分[UIScrollViewperformSelector....之外,所有代码都有效。请提前帮助并谢谢你。UIScrollView*firstView;UIImageView*secondView;UIImage

iphone - "Unrasterize"UIView层

我创建了一个包含三个subview(UIButtons)的UIView。然后我将其作为subview添加到collectionView中。(如菜单)这当然会降低FPS..为了不影响滚动性能,我栅格化了UIView的图层。这按预期工作,但我现在想在动画停止时“取消栅格化”UIView层,以便我能够再次使用按钮。有什么建议吗?提前致谢!编辑:我试过:[myViewsetNeedsLayout];和myView.layer.shouldRasterize=NO;[myView.layersetNeedsDisplay]; 最佳答案 不要在

ios - [UIView setNeedsDisplay] : is there an easy way to know when drawRect is complete?

我有一个UIView,我导入它以使用父类(superclass)中的setNeedsDisplay显示贝塞尔曲线路径。一旦UIView完成更新,我需要在父类(superclass)中调用另一个方法。我在setNeedsDisplay之后调用了该方法,但是该方法是在UIView完成重绘之前调用的。作为快速修复,我在调用方法之前用0.3秒创建了一个NSTimer。那行得通,但可能不可靠。我也可以将UIView的通知发回父类(superclass),但这似乎不对。我已经检查了文档,但找不到有关完成通知的任何信息。是否有任何内置函数? 最佳答案

ios - 将 contentInset 或 automaticallyAdjustsScrollViewInsets 设置为实际应用后我必须做什么?

我有一个包含UIScrollView的UIViewController。最初automaticallyAdjustsScrollViewInsets未设置(因此它应该默认为YES)。在某些用户交互中,我将automaticallyAdjustsScrollViewInsets设置为NO,因此我可以在ScrollView上设置我自己的contentInset。这样做之后什么也没有发生。之后我必须调用什么?在ScrollView上调用setNeedsDisplay没有帮助。 最佳答案 如果您希望ScrollView的初始显示包含初始内容

ios - 在 for 循环中调用 setNeedsDisplay

我有一些绘图代码试图在显示图像的UIView顶部绘制图层。每次准备要显示的部分时,for循环代码都会调用对setNeedsDisplay的更新,但View上的drawRect只会在最后调用。循环是否太快而打断了之前的调用?for(inti=0;i0)&&(tfy>0)){updateCount++;sourceRect=CGRectMake(sx*8,((((ipegHeight-1)/8)-sy)*8)+osy,tfx,tfy);targetRect=CGRectMake(tx*8,ty*8,tfx,tfy);ipegSection=CGImageCreateWithImageInR

cell.layoutifneed and cell.layoutsubviews和cell.setneedsdisplay方法一般可以做什么?

有什么cell.layoutIfNeeded()和cell.layoutSubviews()和cell.setNeedsDisplay()方法一般吗?看答案layoutsubviews列出子视图。简而言之,此方法可以确定任何子视图的大小和位置,如果您有子类,它也有助于获得所需的行为。文档在这里2.layoutifneed力量视图立即布局,例如,您已更改了约束常数,并反映了您需要调用Layoutifneed的更改。(也可以是动画:P)。文档在这里setneedsdisplay标记视图在下一个绘图周期中需要重新绘制,当您调用此方法时,系统会通知系统的内容已更改,并且将在下一个绘图周期中重新绘制。文

ios - 在 iOS 上,setNeedsDisplay 确实不会导致 drawRect 被调用...除非 CALayer 的显示或 drawInContext 最后调用 drawRect?

我不是很明白CALayer的display和drawInContext与View中的drawRect有什么关系。如果我有一个每1秒设置一次[self.viewsetNeedsDisplay]的NSTimer,那么每1秒调用一次drawRect,如内部的NSLog语句所示drawRect的。但是如果我将CALayer子类化并将其用于View,如果我将display方法设为空,那么现在永远不会调用drawRect。更新:但是display每1秒调用一次,如NSLog语句所示。如果我删除那个空的display方法并添加一个空的drawInContext方法,同样,永远不会调用drawRect