我有一个以编程方式设置的视图控制器,它有一个孩子UIPageViewController.这将显示也以编程方式设置的各种其他视图控制器.这些视图控制器的视图已translatesAutoresizingMaskIntoConstraints设置为YES,但页面视图控制器的视图使用约束将自身定位在顶视图控制器中.
问题是,当用户旋转设备时,页面视图控制器会调整其框架的大小,但其子视图控制器不会.通过didRotateFromInterfaceOrientation,它的框架仍然是旧的方向.我已经验证了在子视图控制器上调用旋转方法,它们的框架不会改变.
我设置了这样的页面视图控制器:
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.view.backgroundColor = [UIColor clearColor];
self.pageViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
self.pageViewController.dataSource = self;
self.pageViewController.delegate = self;
[self.pageViewController willMoveToParentViewController:self];
[self.view addSubview:self.pageViewController.view];
[self addChildViewController:self.pageViewController];
[self.pageViewController didMoveToParentViewController:self];
self.currentPageIndex = 0;
self.currentPageController = [self pageForIndex:self.currentPageIndex];
self.currentPageController.delegate = self;
[self.pageViewController setViewControllers:@[self.currentPageController] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
Run Code Online (Sandbox Code Playgroud)
我试过调用,setNeedsLayout但这是一个笨拙的旋转动画,我刷到的下一页也没有正确调整大小.
为什么页面视图控制器没有调整其子视图控制器的大小,我该如何让它执行此操作?
谢谢!
constraints ios auto-rotation uipageviewcontroller autolayout
我刚刚在SO上看到了这个最近的问题,这与我在这里提出的要求有些接近.
所以我试图使用Core Text和排版数学方程式NSAttributedString.对于像x 2这样的表达式,它工作得非常好,但是当我使用y时,我遇到了一个问题.也就是说,'y'有一个下降器,我不知道如何在我的绘图代码中考虑到:
CGContextSaveGState(context);
CGContextTranslateCTM(context, x, sizeOfGlyph.height / 2.0);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CTLineRef line = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)attributedSubstring);
CGContextSetTextPosition(context, 0.0, 0.0);
CTLineDraw(line, context);
CFRelease(line);
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)
基本上,我是由字型的高度的一半翻译上下文(如计算这里)开始处的字形的基准文本.正如您可以想象的那样,这会遇到像'y'这样的字形问题,因为字形的一半高度不是字形的基线.我不认为使用字体的下行器就足够了,因为我无法知道这个字形是否有下降器.所以我想知道的是,是否有办法找到特定字形的下行(或任何所需的指标)?
关于这个主题的任何技术诀窍都会受到赞赏,我刚刚开始使用Core Text.
在我的故事板中,我有一个UIImageView我想放置在半透明导航栏下方的固定距离.我将视图控制器的模拟顶部条设置为半透明条,我现在的约束条件为"Topview to Superview Equals 52",条形图下方8个点.
但是,当视图旋转到横向时,导航栏缩小到34点,图像视图仍然像在纵向中一样处于52点.
我可以在IB中使用什么约束来将图像视图放置在导航栏下方的8个点,无论条形图有多高?
谢谢!
是否可以在NSTextAttachment要在iOS上显示的位置显示自定义视图?我有自定义文本存储和布局管理器子类,但我不知道在哪里放置代码来实际添加子视图.
(我想要的原因是支持内联方程式编辑.我有一个自定义文本字段类,允许用户键入方程式,我希望将此视图添加到另一个文本视图的主体内.)
我已经看过这个教程,虽然它似乎是一个很好的起点,但它并没有涵盖实际绘制文本附件的位置.那么,具体来说,我应该覆盖哪些方法来添加自定义视图来代替默认文本附件图标?
如果我想做什么是可能的,或者我是否以错误的方式解决这个问题,请告诉我.谢谢你的帮助!
ios ×4
autolayout ×2
cocoa-touch ×1
constraints ×1
core-text ×1
glyph ×1
objective-c ×1
storyboard ×1
textkit ×1