Tag: autolayout

获取UIButton for iPhone 5/6/6 +的可变高度

对于我的1)肖像只有2)部署目标iOS7 / iOS8的应用程序,我有我的deviseUIButtons具有可变高度,为iPhone 5,iPhone 6和iPhone 6 +。 我正在尝试使用自动布局。 (尽pipe不使用大小类)。 使用自动布局如何指定这3种屏幕尺寸的UIButton的可变高度。 iPhone 5 *上的按键看起来不错,但在iPhone 6/6 +上更薄。 现在在自动布局,我可以说高度> =或=或<=说55),但如何指定44为iPhone5,55为iPhone6,66为iPhone6 +? 这是我可以实现只使用自动布局的东西,还是我需要在代码中manupulate(框架)? 那么我使用自动布局的重点是什么? 除了框架我的devise还指定不同的字体大小。 我如何去做这件事。 任何最有名的方法,Stack-O的朋友..

Autolayout:UILabel不能用长文本正确resize

我有一个UITableViewCell与两个UILabel :标题和说明。 标题标签有问题。 基本上,我想要的是增加高度,如果文字大于可用空间,并防止“…”。 这就是它的外观,你可以看到右侧标题标签的限制。 正如你所看到的,标题标签成功地增加了它的高度,但是文本仍然在一行中。 在“文本样式 – 标注”中使用的字体。 有什么build议么? 编辑1 :我已经设置行数为'0' 编辑2 :我通过删除UILabel并重新添加,但首先看看Wojtek提出的build议。

iOS的topLayoutGuide使用iOS 7和iOS 8之间的子视图控制器的区别

基本上我试图解决这个问题所要求的同样的问题。 但是,当我在iOS 8上运行应用程序时,一切都按预期工作:子视图控制器正在使用自己的topLayoutGuide,但其位置值根据父级设置的位置值进行了适当设置。 当我在iOS 7上运行时,孩子的topLayoutGuide与父母的不匹配。 为了使这个工作起作用,iOS 8已经做了哪些改变? 如何将相同的行为应用于iOS 7(可能没有使用混合和其他巫术,因为上面提到的链接问题)。

我如何做到这一点,如果我淡出我的导航栏,然后实际上隐藏它的程序,如果我撤消这没有时间问题?

长话短说,我有一个视图控制器,用户可以点击self.view (除了导航栏之外的任何地方),它将进入全屏模式,底部的控件淡出,导航和状态栏淡出。 类似于iBooks。 我可以简单地淡化导航栏的alpha,但是为了让用户能够在新获得的区域(导航栏现在已经淡出)中点击,并且让它做一些事情,我不得不做更多的事情,阿尔法,因为导航栏仍然在技术上占据领域。 所以我用[self.navigationController setNavigationBarHidden:YES animated:NO];隐藏导航栏[self.navigationController setNavigationBarHidden:YES animated:NO]; 。 在animation块结束后我必须这样做,否则它将在animation块中并作为块的一部分进行animation处理。 所以我使用dispatch_after在animation完成后(0.35秒延迟)完成。 然而,这导致如果用户在0.35秒的时间段内在任何时间点击animation并且等待完成的事件,那么引起另一个块开始时的瑕疵行为,即使对于另一个块仍然等待0.35秒完成。 它会导致一些不好的行为,并导致导航栏保持隐藏状态。 毛。 它发生的video: http : //cl.ly/2i3H0k0Q1T0V 这是我的代码来演示我在做什么: – (void)hideControls:(BOOL)hidden { self.navigationController.view.backgroundColor = self.view.backgroundColor; int statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; [UIView animateWithDuration:0.35 animations:^{ [[UIApplication sharedApplication] setStatusBarHidden:hidden withAnimation:UIStatusBarAnimationFade]; if (hidden) { self.navigationController.navigationBar.alpha = 0.0; self.instructionsLabel.alpha = 0.0; self.backFiftyWordsButton.alpha = 0.0; self.forwardFiftyWordsButton.alpha = 0.0; self.WPMLabel.alpha = […]

表视图单元从View Controller返回到Table View Controller时“跳转”

我有一个TableViewController ,并单击一个自定义单元格将您带到相关的WebViewController 。 我遇到的问题是,当我点击WebViewController的“返回” TableViewController的表视图单元格“跳转”。 一旦桌面视图开始滚动,他们都跳回到正确的高度。 所以我假设它与TableViewController自定义单元格的高度有关,但我不完全确定。 TableViewController.m 尝试: – (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { id model = self.Model[indexPath.row]; if ([model isKindOfClass:[Two self]]) { return 490; // As of 11/13/14 } else { // 2 other custom cells return tableView.rowHeight; // return the default height } } 也试过了: – (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { […]

首次出现时不能更改UITableViewCell中的UILabel的框架(使用Autolayout)

我有一个UITableView中包含UILabel的原型单元格。 我想dynamic地改变标签的大小(和单元格),这取决于标签中文字的大小。 我像这样在cellForRowAtIndexPath创build原型单元格: static NSString *CellIdentifier = @"ProgramDetailCell"; ProgramDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell.descriptionLabel.text = self.program.subtitle; return cell; 然后我的ProgramDetailCell有以下实现: @implementation ProgramDetailCell – (void)layoutSubviews { [super layoutSubviews]; [self.descriptionLabel sizeToFit]; } @end 单元格第一次显示时, layoutSubviews被调用,但descriptionLabel不会被resize。 但是,如果我向下滚动表格并重新备份,则“重用”单元格将显示,并且标签的大小已正确调整! 为什么第一次显示单元格时不工作 – 我需要做些什么来修复它。 提前致谢!

searchBar与section header视图重叠

我把searchBar放在tableHeaderView里面。 一切工作正常在iPhone 6,但在iPhone 5S我得到这个奇怪的结果? override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self tableView.sectionIndexColor = Constants.Colors.ThemeGreen tableView.sectionIndexBackgroundColor = UIColor.clearColor() tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() tableView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(Constants.Dimensions.TabBarHeight), 0) resultSearchController = UISearchController(searchResultsController: nil) resultSearchController.searchResultsUpdater = self resultSearchController.dimsBackgroundDuringPresentation = false resultSearchController.definesPresentationContext = true tableView.tableHeaderView = resultSearchController.searchBar resultSearchController.searchBar.sizeToFit() //Fetch data for the first time do{ try […]

如何在animateTransition期间获取ToViewController中子视图的框架:?

我使用iOS 7引入的新的自定义转换,我试图从我的'主'视图控制器的视图移动到我的'详细'视图控制器types的视图类似如何Photos.app放大照片时你点击它,除了这个视图在细节vc只占了一半的屏幕。 要做到这一点,我试图通过从细节或toViewController获取最终框架来animation这个视图到最后的框架。 然而,我得到的框架是从Interface Builder的toViewController视图的起始框架,而不是在AutoLayer传递给它之后出现的视图。 自动布局设置后如何获取框架? 在toViewController特殊视图框架返回到animateTransition之前,我尝试过[self.view layoutSubviews]:但是仍然给出了IB布局。 – (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; [[transitionContext containerView] addSubview:toViewController.view]; toViewController.view.alpha = 0; [UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{ fromViewController.view.alpha = 0; toViewController.view.alpha = 1; fromViewController.specialView = [toViewController detailSpecialViewFrame]; } completion:^(BOOL finished) { [transitionContext completeTransition:![transitionContext transitionWasCancelled]]; }]; }

如何使用自动布局在UIPageViewController中定位子视图?

我有一个UIPageViewController子类,并在其viewDidLoad我想添加一个UILabel到它的self.view 。 这工作正常,如果我使用框架设置其位置,但如果我尝试使用自动布局来定位它,我得到: *断言失败 – [_ UIPageViewControllerContentView layoutSublayersOfLayer:],/SourceCache/UIKit_Sim/UIKit-2935.58/UIView.m:8742 我该如何定位这个UILabel在UIPageViewController显示?

使用自动布局在UIScrollView中使用浮动视图滚动犹豫

题: 我会简化问题,但保留我的原始参考… 我正在修改现有约束的优先级,但结果只会改变其中一个UIScrollView子视图的位置。 所有剩下的子视图保持原来的大小和位置,但是看起来像是我在修改约束条件下的所有子视图上发生布局传递。 那么,为什么ViewWillLayoutSubviews和UpdateViewConstraints被调用的东西没有改变? [原始问题]请看下面的细节。 在包含的屏幕录像中看到的滚动犹豫的原因是什么?我该如何解决? 背景: 我已经构build了一个手风琴风格的列表控件,它承载了几个子UIViewControllers的视图,每个UIViewControllers都与一个标题视图配对,以使用户能够切换其内容视图的可见性。 我已经使用自动布局的UIScrollView创build了这个列表控件。 我已经非常熟悉用UIScrollView进行自动布局的复杂性,但是承认我对于自动布局来说是相当新颖的。 我严重依赖苹果的文档和社区的相关博客文章: 苹果的文档 相关的StackOverflow问题 在许多其他许多人之中。 我已经实现了这个控件,使得标题视图可以浮动在其他UIScrollView内容之上。 非常像分组的UITableView的部分视图,当用户向下滚动以查看更多内容时,他们将坚持到UIScrollView的顶部。 顺便说一下,我最初使用UITableView来构build它,但是它pipe理可见单元格的方式导致了它自己的滚动性能问题。 问题: 滚动内容时遇到一些性能问题。 我已经做了一些故障排除,我发现,当“浮动标题”function被禁用时,滚动性能是相当不错的(虽然仍然有一些犹豫,扩大/折叠可能与我的滚动相同的原因部分性能问题)。 但是,当启用此function时,每个标题视图浮动时,滚动犹豫不决。 我已经在我的iPod Touch 5上添加了我的原型屏幕录像。 在iPod Touch 5上运行原型的Screencast 这是一个非常小的犹豫,但这个原型具有明显不太复杂的内容视图。 最后的项目显示了犹豫不决,大约一秒钟。 细节: 原型是使用Xamarin构build的,但是我精通Objective-C,如果这就是你想要回答的问题。 以下是我如何设置我的约束来支持此function。 我已经在修改UIScrollView子视图的Reload()方法中做了这个。 UIView previousContent = null; for (var sectionIdx = 0; sectionIdx < this.Source.NumberOfSections (this); sectionIdx++) { var vwHeader = this.Source.GetViewForHeader (this, sectionIdx); […]