Tag: autolayout

如何以编程方式在UIScrollView中用AutoLayout设置子视图?

我用UiScrollview和UIPagectontrol使用Autolayout Progrmatically创build应用程序 我创build了TKScroller作为UIView的子类,我初始化它使用某些模式和数组。 TKScroller.m -(void)setData{ [self layoutIfNeeded]; CGRect mainFrame=self.frame; [self layoutIfNeeded]; CGRect mainFrame=self.frame; UIView *lastview; NSMutableArray* manualConstraints = [NSMutableArray array]; for (int i=0; i<arrayData.count ; i++) { CGRect frame; frame.origin.x = scrollView.frame.size.width * i; frame.origin.y = 0; frame.size = scrollView.frame.size; UIView *subview = [UIView new]; subview.backgroundColor = [self getRandomColor]; [scrollView addSubview:subview]; if (i==0) { NSLayoutConstraint* […]

UITableView中的dynamicUIImageView大小

我想用自定义的TableViewCell实现一个显示图像的TableView。 为了简单起见,我只需使用autolayout将一个UIImageView放在tableviewcell中(如下图所示)。 我想要的是在UIImageView内显示图像,但这些图像尺寸可以是任何东西,并不一致(肖像,风景,广场)… 因此,我正在寻找显示具有固定宽度(设备的宽度)和尊重图像比例的dynamic高度的图像。 我想要这样的东西: 我不幸没有达到这个结果。 下面是我如何实现它(我使用Haneke从URL中加载图像 – 存储在Amazon S3中的图像): class TestCellVC: UITableViewCell { @IBOutlet weak var selfieImageView: UIImageView! @IBOutlet weak var heightConstraint: NSLayoutConstraint! func loadItem(#selfie: Selfie) { let selfieImageURL:NSURL = NSURL(string: selfie.show_selfie_pic())! self.selfieImageView.hnk_setImageFromURL(selfieImageURL, placeholder: nil, format: HNKFormat<UIImage>(name: "original"), failure: {error -> Void in println(error) }, success: { (image) -> Void in // Screen Width […]

在Swift 3中以编程方式使用ScrollView

我已经search了其他的问题,似乎仍然有一些麻烦创build我的scrollView以自动布局在swift 3.我能够让我的滚动显示如下图所示,但当我滚动到底部我的另一个标签没有显示,“滚动顶部”标签不会消失。 希望有人可以帮助检查我的代码在下面! import UIKit class ViewController: UIViewController { let labelOne: UILabel = { let label = UILabel() label.text = "Scroll Top" label.backgroundColor = .red label.translatesAutoresizingMaskIntoConstraints = false return label }() let labelTwo: UILabel = { let label = UILabel() label.text = "Scroll Bottom" label.backgroundColor = .green label.translatesAutoresizingMaskIntoConstraints = false return label }() override func […]

使用自定义animation时,会在iOS9上忽略edgesForExtendedLayout

当使用UIViewControllerAnimatedTransitioning实现自定义animation时,iOS9似乎忽略了目标视图控制器的edgesForExtendedLayout ,因此内容会在导航栏下方结束。 任何想法为什么发生这种情况? 我已经在https://github.com/nmarkovic04/CustomAnimationTest举办了一个例子。 在8.4和9.1上运行它显示了不同之处,但是你很可能会尝试任何其他的8.x和9.x版本。 运行在Xcode 7,Swift 2.0上。

如何在iOS的自动布局中设置视图的dynamic宽度和高度?

我有一个UIView在我的超级view.I已经设置了一些约束。现在我想在不同的devices.If视图的大小应该是不同的。如果我设置固定宽度和高度,然后我得到了错误的结果。我曾尝试用户长宽比,但是在多个设备上看起来太大或太小。 我希望高度和宽度应该以相同的比例增加,它必须看起来相同的所有devices.I要灵活的高度和宽度的view.Please告诉如何做到这一点? 这是图像 提前致谢

Autolayout:原点和大小应根据宽度和高度因素而改变

这是我需要的一个场景。 我已经在IB(尺寸iPhone4英寸)上放置了一个UIButton,其IB上的初始帧是x:100,y:100,w:100,h:100 。 我想要根据设备大小来改变原点和高度。 例如iPhone6的宽度和高度是375X667,因此宽度因子(375/320 = 1.1718)和高度因子(667/568 = 1.1742) 。 在这个场景中,我想通过乘以宽度因子(1.1718)和原点Y和高度乘以高度因子(1.1782)来更改我的button原点X和宽度。 在这种情况下,我的button应显示在x:100X1.1718,y:100X1.1742,w:100X1.1718,h:100X1.1742 。 iPhone6 +也需要同样的东西。 我可以通过设置这个自动调整掩码来轻松实现。 我怎样才能达到相同的使用自动布局? 我应该遵循什么步骤,我应该适用什么限制? 我以前的这个问题 我附上了一些截图,我需要使用Autolayout(上图中显示的自动修复掩码实现)。 我的尝试: – 第一步: – 在IB上取一个尺寸为100X100的button。 设置其X = 100和Y = 100。 第二步: – 应用这个约束。

带有Interface Builder的iOS8自动调整静态TableView单元格

我很兴奋能够在Xcode中使用自动布局来支持dynamictypes的静态TableViews,如WWDC2014“表和集合视图中的新增function”中所述 。 我宁愿严格使用Xcode / Interface Builder和故事板来处理自动布局。 当我这样做,不知何故TableView单元格不会resize,我敢肯定,我错过了一些简单的东西。 为了重现这一点,使用Xcode 7 beta 5,我: 创build一个新的单一视图项目。 将Storyboard入口点设置为一个新的UITableViewController。 使其成为具有分组样式的静态表格视图。 第一行添加了一个标签。 顶部,底部,左侧和右侧增加了约束条件。 将标签字体设置为“正文”。 添加到ViewDidLoad: self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 44.0; 将其编辑并在“设置”中调整dynamictypes。 当字体改变时,TableView高度仍然停留在明显的默认值44,并截断标签。 这是一个GitHub仓库 ,这是上述的结果。 为什么不是自动布局导致TableView展开,以填补必要的空间,以适应新的更大的标签文本? 我已经find了关于这个主题的很好的post,比如下面的代码, 在这里使用代码来设置约束。 我没有发现在纯粹的Interface Builder中这样做的任何例子。 这当然很有可能吗? 更新 我已经更新了GitHub源代码,包括一个ImageView而不是UILabel的第二个表格行; 它显示了同样的问题: 此外,当我在标签或图像视图上设置明确的高度约束时,我生成以下内容。 这个问题似乎是这个“UIView-Encapsulated-Layout-Height”约束,我没有设置。 我猜这是生成的,因为在IB的静态tableview中,行高设置(默认)为44。 Unable to simultaneously satisfy constraints. … "<NSLayoutConstraint:0x7fa371f39e30 V:[UILabel:0x7fa371f38d30'Label'(20)]>", "<NSLayoutConstraint:0x7fa371c39160 UILabel:0x7fa371f38d30'Label'.top == UITableViewCellContentView:0x7fa371e17dc0.topMargin>", "<NSLayoutConstraint:0x7fa371c393c0 UITableViewCellContentView:0x7fa371e17dc0.bottomMargin == […]

使用Autolay的UIScrollViewdynamicUILabel高度

我使用UIScrollView自动布局来显示对象的一些属性。 我从networking服务中免费下载这些信息。 scrollview有一个恒定的宽度(因为我不想有一个垂直滚动的行为),它的子视图尊重这个宽度与一组约束,但我不能够增加UILabel的高度dynamic。 我编码的一切,我用viewDidLoadselect器来创build子视图… – (void)viewDidLoad { [super viewDidLoad]; . . . UILabel *descriptionLabel = [[UILabel alloc] initWithFrame:CGRectZero]; descriptionLabel.translatesAutoresizingMaskIntoConstraints = NO; descriptionLabel.numberOfLines = 0; descriptionLabel.lineBreakMode = NSLineBreakByWordWrapping; descriptionLabel.opaque = YES; descriptionLabel.backgroundColor = [UIColor clearColor]; descriptionLabel.textColor = [UIColor whiteColor]; descriptionLabel.textAlignment = NSTextAlignmentRight; descriptionLabel.font = [UIFont appetitoMediumItalicFontWithSize:15.0f]; descriptionLabel.text = NSLocalizedStringFromTable(@"APT_DISH_DETAIL_DESCRIPTION", @"DishDetail", @"Etiqueta que contiene la descripción del […]

自动布局约束更改不animation

我正在学习教程中的animation自动布局 http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was 事情正在完善。 当我尝试在我的应用程序中使用这个概念时,试图从底部到顶部设置一个设置屏幕(UIView)的animation,当设置屏幕只是一个空的UIView时, 但是,如果我添加一个UILabel作为子视图到这个设置屏幕,animation就消失了。 在从设置屏幕删除这个UILabel时,animation是可见的。 这是我连接的网点 __weak IBOutlet UIView *settingsView; __weak IBOutlet NSLayoutConstraint *settingsBottomConstraint; __weak IBOutlet NSLayoutConstraint *settingsViewHeightConstraint; 查看没有负载设置方法(setupViews) -(void)setupViews { settingsBottomConstraint.constant = – settingsViewHeightConstraint.constant; [settingsView setNeedsUpdateConstraints]; [settingsView layoutIfNeeded]; isSettingsHidden = YES; } 隐藏/取消隐藏方法 – (IBAction)showSettingsScreen:(id)sender { if (isSettingsHidden) { settingsBottomConstraint.constant = 0; [settingsView setNeedsUpdateConstraints]; [UIView animateWithDuration:.3 animations:^{ [settingsView layoutIfNeeded]; }]; } else{ settingsBottomConstraint.constant […]

UICollectionView iOS 9在支持RTL语言的项目上发布

在使用UICollectionView时,似乎苹果在RTL语言中使用自动翻转界面的新function会导致问题。 我在收集视图中使用了Trailing / Leadingtypes的约束条件,并且按照RTL语言切换了它们的值。 问题是实际显示的数据是集合数据源中的最后一个 indexPath ,但是第一个单元格的UIScrollView.contentOffset.x是0。 一个适当的行为将是以下之一: 正确显示第一个indexPath并切换滚动的方向(向右) – 最佳select 不翻转UI /约束,所以indexPath -data / indexPath / scrollView.contentOffset.x将被同步 – 禁用RTL支持的选项。 呈现最后一个indexPath的单元格和数据,但修复scrollView.contentOffset.x以表示最后一个单元格的位置。 我猜苹果可能会在将来某个时候修复它,但同时我们将不得不使用倒序数组和/或滚动到最后一个对象的解决方法。