小编arc*_*ist的帖子

UIPageViewController没有调整其子视图控制器的大小

我有一个以编程方式设置的视图控制器,它有一个孩子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

13
推荐指数
2
解决办法
3255
查看次数

获取有关Core Text中字形的信息

我刚刚在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.

glyph core-graphics core-text ios

7
推荐指数
1
解决办法
954
查看次数

iOS Autolayout - 在半透明导航栏下方正确定位视图

在我的故事板中,我有一个UIImageView我想放置在半透明导航栏下方的固定距离.我将视图控制器的模拟顶部条设置为半透明条,我现在的约束条件为"Topview to Superview Equals 52",条形图下方8个点.

但是,当视图旋转到横向时,导航栏缩小到34点,图像视图仍然像在纵向中一样处于52点.

我可以在IB中使用什么约束来将图像视图放置在导航栏下方的8个点,无论条形图有多高?

谢谢!

uinavigationbar storyboard ios autolayout

5
推荐指数
1
解决办法
9927
查看次数

NSTextAttachment自定义视图

是否可以在NSTextAttachment要在iOS上显示的位置显示自定义视图?我有自定义文本存储和布局管理器子类,但我不知道在哪里放置代码来实际添加子视图.

(我想要的原因是支持内联方程式编辑.我有一个自定义文本字段类,允许用户键入方程式,我希望将此视图添加到另一个文本视图的主体内.)

我已经看过这个教程,虽然它似乎是一个很好的起点,但它并没有涵盖实际绘制文本附件的位置.那么,具体来说,我应该覆盖哪些方法来添加自定义视图来代替默认文本附件图标

如果我想做什么是可能的,或者我是否以错误的方式解决这个问题,请告诉我.谢谢你的帮助!

cocoa-touch objective-c nstextattachment ios textkit

5
推荐指数
1
解决办法
1253
查看次数