Tag: 约束

在Tab Swift中使用页面视图控制器

我的工作很远: 所以我有一个标签栏,看起来像这样: 当我点击“食堂”我想要被导向到页面视图控制器,我可以在不同的页面之间滑动,但留在同一个选项卡上。 我有这个工作: 我有这样的故事板设置: 正如你所看到的,上面的代码来自Tab Bar Controller。 第三个视图(Can Page控制器,ID:“CanItemController”)用于页面视图中的所有页面。 上面的第二个视图(Page View Controller,ID:“CanPageController)用于控制Pages(duh) 第一个视图(CanteenViewController)包含所有的代码,并进行所有的连接。 这就是一切的继续。 这个类里面的代码在这里: import UIKit class CanteenViewController: UIViewController, UIPageViewControllerDataSource { // MARK: – Variables private var pageViewController: UIPageViewController? private let contentImages = ["Radar-512.png", "dartp.png", "roomp.png", "abnews.png", "canteenp.png"]; override func viewDidLoad() { super.viewDidLoad() createPageViewController() setupPageControl() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose […]

如何更改表视图单元格中的textview高度约束?

关于如何使用Autolayout和TextView里面的dynamic单元格高度存在很多问题。 这是故事 我遵循这篇文章的iOSdynamic表格视图单元格与不同的行高度和Autolayout 。 在这种情况下,我们用TextViewreplace文章中的第二个标签,使用相同的约束 TextView没有内容大小的标签。 所以我们必须使用sizeThatFits并在TextView上创build高度约束,就像这样。 这个高度约束是来自Nib的IBOutlet ViewController.m – (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { Item *item = self.dataSource.items[indexPath.row]; [self.prototypeCell configureWithModel:item]; [self.prototypeCell updateConstraintsIfNeeded]; [self.prototypeCell layoutIfNeeded]; self.prototypeCell.textViewHeightConstraint.constant = [self.prototypeCell.textView sizeThatFits:CGSizeMake(self.prototypeCell.frame.size.width, CGFLOAT_MAX)].height; [self.prototypeCell updateConstraintsIfNeeded]; [self.prototypeCell layoutIfNeeded]; return [self.prototypeCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; } CustomCell.m – (void)configureWithModel:(Item *)model { self.textView.text = model.content; } 然后,我在控制台中看到 Unable to simultaneously satisfy constraints. Probably at […]

奇怪的问题,我的UISearchController的空间

问题是这样的: searchnavbar和navbar之间有空格: 在“ Debug in Hierarchy中的Debug in Hierarchy : 表视图 包装视图,我们可以看到空间(20 pix) 在storyboard ,我将约束条件设置为tableView ,注意: navigationBar是由我自己绘制的,本地人是由我隐藏的。 我的代码 import UIKit import SVProgressHUD class StoreListViewController: UIViewController, UISearchBarDelegate, UITableViewDelegate,UITableViewDataSource, UISearchResultsUpdating { @IBOutlet weak var navbar: UINavigationBar! @IBOutlet weak var tableView: UITableView! var ori_dataSource: [StoreListModel] = [StoreListModel]() var dataSource = [String]() var filterdDataSource = [String]() var resultSearchController = UISearchController() […]

ios ipad:在横向模式下将TabBar旋转到左侧,并进行变换和约束更新

我正在创build一个ios的iPad应用程序,它有一个UITabBar控件位于底部的3个MenuItems。 通常,当我旋转设备时,tabbar将保持在横向的底部。 我希望TabBar在风景模式下左侧旋转,并成为垂直表示。 如果可能的话,我不想创build一个带有button的UIView,因为我想要同一个对象来pipe理这两个对象,而且我喜欢普通TabBar的便利。 我的计划是检测设备的位置,并使用UITransform在横向上旋转TabBar 90度。 现在让我们忽略里面的图标和文本旋转,只关注整个TabBar本身。 旋转工作,除了它离开垂直TabBar在屏幕的底部中心看起来很不恰当的地方。 接下来的任务是将其限制在左侧墙上。 通常我使用3个约束来将TabBar保持在左侧/下侧/右侧。 我很难find正确的约束来正确保持它的左侧。 一个主要的问题是,一旦完成转换,高度和宽度属性在标签栏上反转(或者也转换)。 如此之高使其在屏幕上更宽,而宽度则更高。 除了顶部/底部+高度组合导致约束冲突之外,使用顶部/底部约束以及49的高度是看起来需要的。 我附上我当前的合理工作的约束逻辑,但我不明白为什么我需要硬编码这些值如图所示。 这是获得左侧视觉输出的唯一方法。 我想知道是否有一个更干净的方法来做到这一点,也许没有硬编码值的常量。 我也不确定我将如何最终旋转文本+图标作为下一步。 附件也是目前的情况。 清楚地说明是绿色的,但最终是透明的,所以景观的顶部的截止点不会成为问题。 – (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation { switch (orientation) { case UIInterfaceOrientationPortrait: case UIInterfaceOrientationPortraitUpsideDown: { //load the portrait view // revert to normal transform _tabBar.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI*2); [self.view removeConstraint:_tabbarConstraintT]; [self.view removeConstraint:_tabbarConstraintR]; [self.view removeConstraint:_tabbarConstraintB]; [self.view removeConstraint:_tabbarConstraintL]; // […]

用约束animationUIView框架

我有一个UIView中的一个元素的约束,说它应该总是从视图的底部10像素。 然后,我试图为这个视图的高度设置animation,这样看起来就像在屏幕上滑动一样。 根据约束条件,元素始终应该距离视图底部10个像素。 当我像这样添加视图时,这是真实的… printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"]; [self addChildViewController:vc]; vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, HEIGHT); vc.view.layer.masksToBounds = FALSE; [vc.view.layer setShadowOffset:CGSizeMake(0.0, 5.0)]; [vc.view.layer setShadowOpacity:0.8]; vc.view.layer.shadowColor = [[UIColor blackColor] CGColor]; vc.view.layer.shadowRadius = 8; vc.view.clipsToBounds = TRUE; [self.view insertSubview:vc.view aboveSubview:docWebView]; 我可以将HEIGHT更改为任何我想要的元素总是从视图底部10个像素。 当我尝试对高度进行animation处理时,问题就出现了 printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"]; [self addChildViewController:vc]; vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, 0); vc.view.layer.masksToBounds […]

使用3.5英寸和4英寸外形尺寸的自动布局调整视图大小

我有一个原型tableview单元格,在tableview单元格内有一个自定义视图。 包含tableview的视图控制器只能以横向模式显示。 目标是在tableview单元格内的UIView根据窗体大小调整它的宽度。 因此,例如,左右两边可能会有一个20pt的间距,然后uiview调整它的宽度来填充剩余的空间。 我希望能用故事板和自动布局来做到这一点。 在3.5英寸的外形看起来像这样(这也是它应该看起来像4英寸模式) 在4英寸的外形看起来像这样(宽度没有自动resize) 我知道这里的“自动布局”是合法的,因为水平空间在4英寸外形上也是> 20。 问题的核心虽然是…如何获得一个子视图自动调整它的宽度,当屏幕的宽度改变使用故事板/自动布局/约束?

自动布局内部错误发生在视图被解散时

当我解雇一些我有一些限制的观点时,我得到一个有趣的错误。 自动布局内部错误。 在接近零系数的variables的优化过程中,无法find传入头AppName.ViewName:0x7fc072ed8ef0.Width {id:6805}的传出行头,这绝不应该发生。 我收到这个错误,我添加了这些约束的几个视图。 此错误消息的一个变体是以下内容: 自动布局内部错误。 在接近零系数的variables的优化过程中,找不到输出行{head:id:6630}的输出行头,这绝不应该发生。 有没有人遇到类似的问题,这个错误? 有关如何debugging的任何提示?

如何以编程方式将约束添加到以编程方式创build的UIView?

我已经创build了一个UIView在viewDidLoad中使用以下代码(其中'secondview'显然是UIView的名称): secondview = [[UIView alloc] initWithFrame:self.view.frame]; [secondview setBackgroundColor: [UIColor yellowColor]]; secondview.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:secondview]; 然后在viewDidAppear中,我添加了这个视图的约束: NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:secondview attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0f constant:-20.0f]; [self.view addConstraint:constraint]; 但是,约束不适用于视图(至less不是我所能看到的)。 相反,这个视图简直似乎从屏幕上消失了。 然而,如果约束代码被注释掉了,视图会再次加载相应的框架(显然没有应用约束)。 当对Button或ImageView应用相同的约束时,约束将被完美应用。 这导致我认为这个问题是因为创build视图时的“initWithFrame”,因为button和ImageView实际上都不需要指定它的大小。 你怎么看? 我应该做什么不同?

限制底部布局指南与TabBar问题

我有基于UITabBarController的iPad应用程序与第一个选项卡上的containerView。 containerView对底部布局指南具有标准垂直间距。 当我点击第二个选项卡然后回到第一个选项卡时,我的容器向下移动了56磅,tab​​Bar的高度,然后被tabBar覆盖。 我做了3个截图来说明这一点。 第三个屏幕截图在标签之间跳转后显示隐藏的tabBar。 它看起来像底部的布局指南走到了边缘。 这里发生了什么?

以编程方式快速添加约束

我试图添加约束Facebook的SDKloginbutton。 我有滚动视图中的button,我想添加一个顶部的约束,也是在滚动视图中的标签。 我能够成功地添加高度约束没有运行时错误,但实际的约束似乎并没有被应用到button。 @IBOutlet weak var orLbl: UILabel! @IBOutlet weak var scrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() var loginFBButton = FBSDKLoginButton() loginFBButton.readPermissions = ["public_profile", "email"] let heightConstraint = NSLayoutConstraint( item: loginFBButton, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 41) let topConstraint = NSLayoutConstraint( item: loginFBButton, attribute: NSLayoutAttribute.TopMargin, relatedBy: NSLayoutRelation.Equal, toItem: […]