我从Cocoa自动布局机制得到以下消息: 将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:]。 但我不知道如何“设置NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints为YES”。 我如何设置?
我在Xcode 5中使用自动布局。 我将表视图的高度设置为大于或等于200px。 我希望它具有dynamic的大小。 因为有时会有很多行,有时会有几行。 但尺寸总是200px。 如果内容比这个大,我应该向下滚动查看下面的行。 我应该怎么做给予tableviewdynamic大小?
使用严格的自动布局环境缩放UIScrollView似乎不起作用。 这是特别令人沮丧的,因为iOS 6的发行注记当然让我相信它应该写在这里的“纯自动布局方法”这里http://developer.apple.com/library/ios/#releasenotes/General/RN- iOSSDK-6_0 / _index.html 我看了第202,228和232期的WWDC 2012幻灯片,并没有看到这个答案。 我在网上看到的唯一一个专门针对这个问题的问题是UIScrollView缩放与自动布局 ,但它不提供代码的问题,没有答案。 这个用户https://stackoverflow.com/users/341994/matt已经给了UIScrollView的自动布局问题很多很好的回答,甚至连接到git hub上的代码,但是我一直没能find任何答案。 我试图把这个问题归结为绝对的最低限度来说明问题。 我创build了一个新的单视图应用程序与故事板,并没有在界面生成器的变化。 我添加了一个大的图片文件到项目“pic.jpg”。 SVFViewController.h #import <UIKit/UIKit.h> @interface SVFViewController : UIViewController <UIScrollViewDelegate> @property (nonatomic) UIImageView *imageViewPointer; @end SVFViewController.m #import "SVFViewController.h" @interface SVFViewController () @end @implementation SVFViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. […]
以下代码(在viewDidLoad中调用)将导致全红屏幕。 我希望它是一个完全绿色的屏幕。 为什么它是红色的? 我怎样才能让它变成绿色? UIScrollView* scrollView = [UIScrollView new]; scrollView.translatesAutoresizingMaskIntoConstraints = NO; scrollView.backgroundColor = [UIColor redColor]; [self.view addSubview:scrollView]; UIView* contentView = [UIView new]; contentView.translatesAutoresizingMaskIntoConstraints = NO; contentView.backgroundColor = [UIColor greenColor]; [scrollView addSubview:contentView]; NSDictionary* viewDict = NSDictionaryOfVariableBindings(scrollView,contentView); [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics:0 views:viewDict]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics:0 views:viewDict]]; [scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[contentView]|" options:0 metrics:0 views:viewDict]]; [scrollView […]
我有一个相当简单的视图configuration: 一个UIViewController ,在这个UIScrollView有一个子UIScrollView和一个UIImageView 。 我设置了UIImageView的高度足以突破可见区域(即高于1024pt ),并将Bottom space to superview设置为我的UIImageView 1024pt约束为固定的正值(例如20 )。 整个设置按预期工作,图像在其父项中很好地滚动。 除了滚动视图(如果滚动到视图的底部,效果更明显),然后消失,再次出现(切换到另一个视图并返回)滚动值将被恢复,但滚动的内容滚动视图移动到其父视图的外部顶部。 这不是简单的解释,我会试图画出来: 如果你想testing/查看来源(或故事板,我没有编辑一行代码)。 我在我的github上放了一个小样本: https : //github.com/guillaume-algis/iOSAutoLayoutScrollView 我没有阅读iOS 6 changelog和关于这个特定主题的解释,并认为这是第二个选项(纯自动布局)的正确实现,但在这种情况下,为什么UIScrollView行为如此不正常? 我错过了什么吗? 编辑 :这是完全相同的问题#12580434 uiscrollview-autolayout问题 。 答案只是解决方法,任何人find一个正确的方法来解决这个问题,或者这是一个iOS的错误? 编辑2 :我发现另一个解决方法,保持滚动位置在相同的状态,用户离开它(这是一个改进超过12580434的接受答案): @interface GAViewController () @property CGPoint tempContentOffset; @end @implementation GAViewController -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tempContentOffset = self.mainScrollView.contentOffset; self.scrollView.contentOffset = CGPointZero; } -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.scrollView.contentOffset […]
我在视图中设置了一个uilabel。 它没有宽度约束,但其宽度取决于对缩略图图像的前导约束和对视图边缘的尾随约束。 标签被设置为0行,并自动换行。 我的理解是,这应该导致uilabel框架成长,有时确实。 (在自动布局之前,我会计算并更新代码中标签的框架)。 所以结果是,它在某些情况下正常工作,而不是其他情况。 看到大多数细胞在那里正常工作,但最后一个细胞似乎太大了。 其实这是正确的大小。 标题“公平的橡木烟雾检查testing”实际上以“唯一”结束。 所以我的单元大小的计算是正确的,它应该是这样的大小。 然而,标签不会出于任何原因包装文本。 它的框架宽度不会延伸到右边,所以这不是问题。 那么这里发生了什么? 它是100%一致的,总是在那个单元格上,而不是在它上面,这使我认为它与文本的大小有关,并且UILabel在这个视图被添加到单元格之后不重新排列文本使其实际上更小的宽度明智)。 有什么想法吗? 一些额外的信息 单元格的高度是从我创build的一个样本单元计算的,并存储在一个静态variables中: – (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (self.items.count == 0) { return 60; } static TCAnswerBuilderCell *cell = nil; static dispatch_once_t pred; dispatch_once(&pred, ^{ // get a sample cellonce cell = [tableView dequeueReusableCellWithIdentifier:TC_ANSWER_BUILDER_CELL]; }); [cell configureCellWithThirdPartyObject:self.items[indexPath.row]]; return […]
我有一个UITableView与Autolayout和我需要降低GADBannerView出现在屏幕的底部的高度。 不幸的是Autolayout是不可能修改框架的。 解决办法是删除Autolayout并手动设置框架。 这是非常危险的,因为我所有的应用程序都能在3.5'和4.0'显示器上正常工作,并且移除自动布局,从而导致新的testing阶段和更多的努力 即使自动布局被启用,是否有改变框架的方法?
在我的故事板应用程序中,我尝试添加额外的UITextField接口。 但是我得到了标题所说的例外。 我使用SwiftAutoLayout库。 这是我的代码: // MARK: – IBOutlets @IBOutlet weak var passwordTextField: UITextField! // MARK: – Properties let userIdTextField = UITextField() // MARK: – Lifecycle override func viewDidLoad() { super.viewDidLoad() self.passwordTextField.keyboardType = .NumberPad if getCurrentUserId() == nil { self.view.addSubview(userIdTextField) userIdTextField.setTranslatesAutoresizingMaskIntoConstraints(false) self.view.addConstraints([userIdTextField.al_leading == passwordTextField.al_leading, userIdTextField.al_trailing == passwordTextField.al_trailing, userIdTextField.al_top == passwordTextField.al_bottom + 8]) userIdTextField.placeholder = "Enter User […]
我是新的自动布局。 我从xib文件中完成了我所有的项目,但是现在我遇到了一个问题,我必须以编程方式更新视图的高度。 我已经尝试过,但现在工作。 [[self view] addConstraint:[NSLayoutConstraint constraintWithItem:loginContainer attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:loginFrame.size.height]]; 在控制台中显示 Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code […]
很多像这样的问题解释了如何以编程方式创build一个蒙版,并提供一个UIView的圆angular。 在Storyboard中有没有办法做到这一点? 只是要求,因为它似乎创造了故事板的圆angular在演示文稿和逻辑之间保持更明确的界限。