UITextView 文本容器排除路径在视图控制器中间时不起作用



我的UIView位于视图控制器的中间我将排除路径设置为如下

    -(void) viewDidLayoutSubviews
    {
      UIBezierPath *exludedPath = [UIBezierPath bezierPathWithRect:aRect];
      self.textView.textContainer.exclusionPaths = @[excludedPath];
    }

这里aRect有相同的x和y作为UITextView和合理的高度和宽度

当我的UITextView位于视图控制器的顶部时,这段代码可以工作,但当它位于视图控制器的中间时,这段代码不起作用。

是viewController生命时间问题吗?还是视图控制器的某些属性导致了这个?

仔细检查你的exclusionPath的rect,并确保它真的包含在textViewContainer.size;我遇到了一个类似的错误,最后我通过检查

修复了它。

对于任何看到这个问题的人,我都有同样的问题,并且发现rect是不正确的。假设图像视图的rect是(20,30,50,50)文本视图的rect是(20,30,300,400)贝塞尔路径的矩形应该是(0,0,50,50),而不是(20,30,50,50)。也就是说,传递边界而不是实际的框架。

最新更新