ios – UIButton占据了自己的尺寸Autolayout

ios – UIButton占据了自己的尺寸Autolayout,第1张

概述我试过的是: – UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];[self.view addSubview:btn];btn.translatesAutoresizingMaskIntoConstraints = NO;[btn addTarget:self action:@selector(bringUpNextV 我试过的是: –

UIbutton *btn = [UIbutton buttonWithType:UIbuttonTypeCustom];[self.vIEw addSubvIEw:btn];btn.translatesautoresizingMaskIntoConstraints = NO;[btn addTarget:self action:@selector(bringUpNextVIEwController:)                     forControlEvents:UIControlEventtouchUpInsIDe];btn.TitleLabel.Font = [UIFont FontWithname:@"HelveticaNeue" size:14];[btn setTitle:@"8" forState:UIControlStatenormal];[self.vIEw layoutIfNeeded];NSLog(@"button size : %@",NsstringFromCGSize(btn.frame.size));

作为输出,我得到这个:

button size : {30,29}

然后我给了setTitle字符串什么都没有.按钮宽度仍为30.

那么为什么总是这样呢?

我还尝试给出高抗压优先级和高内容拥抱优先级.不缩减为零.

问题还在于我想简单地根据其内容减小按钮的宽度,而不给出任何固定的宽度.

我可以采用文本的宽度并给按钮宽度,但如果按钮占用内容宽度,我不应该这样做.

编辑:

它不是导致宽度为30的插图.鬼值.

解决方法 按钮由多个子视图组成.按钮的内部布局很可能在标签和按钮视图本身之间有一些默认填充.

制作像您这样的按钮并检查约束显示以下内容:

button constraints ("<NSContentSizeLayoutConstraint:0x8c40a60 H:[UIbutton:0x8f29840(30)] Hug:250 CompressionResistance:750>","<NSContentSizeLayoutConstraint:0x8c55280 V:[UIbutton:0x8f29840(29)] Hug:250 CompressionResistance:750>")

30和29与您看到的大小值相关联.按钮的内在内容大小属性也返回30,29.基本上这是按钮的最小尺寸,没有任何其他东西.

目前还不是很清楚你想要什么,或者为什么你会为此烦恼.任何较小的东西都将是一个糟糕的触摸目标,无论如何,没有标签或图像的按钮将是不可见的.如果添加更长的标题,按钮将变大.如果添加其他约束以强制特定大小,则这些将覆盖内在内容大小.

如果你希望按钮在没有标题时变得不可见,那么你应该明确地隐藏它.这使得您在代码中的意图更加清晰,并且可以防止用户意外地点击他们无法看到的按钮.

总结

以上是内存溢出为你收集整理的ios – UIButton占据了自己的尺寸Autolayout全部内容,希望文章能够帮你解决ios – UIButton占据了自己的尺寸Autolayout所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1073805.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存