- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有什么方法可以减小适合 UISegmentedControl
单个段的字体大小吗?
尝试过很多东西,比如,
[[UILabel appearanceWhenContainedIn:[UISegmentedControl class], nil] adjustsFontSizeToFitWidth];
[[UILabel appearanceWhenContainedIn:[UISegmentedControl class], nil] setMinimumScaleFactor:0.5];
和
NSArray *arr = segment.subviews; // segment is UISegmentedControl object
for (int i = 0; i < arr.count; i++) {
UIView *aSegment = [arr objectAtIndex:i];
for (UILabel *label in aSegment.subviews) {
if ([label isKindOfClass:[UILabel class]]) {
UILabel *myLabel = (UILabel *)label;
[myLabel setNumberOfLines:0];
label.numberOfLines = 0;
label.adjustsFontSizeToFitWidth = YES;
label.minimumScaleFactor = 0.5;
}
}
}
可以设置segment like的标签行数,
[[UILabel appearanceWhenContainedIn:[UISegmentedControl class], nil] setNumberOfLines:0];
可以根据内容设置单段大小,如
segment.apportionsSegmentWidthsByContent = YES;
但在这种情况下,每个段都有不同的大小。
我想保持每个段的大小相同,并希望减小适合 UISegmentedControl
的 UISegmentLabel (label)
的字体大小,例如 minimumscalefactor
或 minimumfontsize
或 adjustsFontSizeToFitWidth
。当包含在 UISegmentedControl
中时,这些属性不适用于标签。
如果有人能帮助实现这一目标,我们将不胜感激!!
提前致谢!!
最佳答案
我发现了问题,原来是我的错!!!我同时设置了 numberOfLines、adjustsFontSizeToFitWidth、minimumScaleFactor
和 TitleTextAttributes
。如果我们设置 titleTextAttribute
,则 minimumScaleFactor
无法工作。
更新:(@HawkEye1194 在另一个答案的评论中提出)
我最终得到了以下解决方案,
//this will allow multiple lines in label contained by every segment in segmentedcontroller
[[UILabel appearanceWhenContainedIn:[UISegmentedControl class], nil] setNumberOfLines:0];
UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:option];
segment.frame = CGRectMake(20, 50, self.view.frame.size.width - 40, 50);
segment.tintColor = [UIColor grayColor];
segment.selectedSegmentIndex = 0;
segment.backgroundColor = [UIColor whiteColor];
segment.tag = segmentedControllerBaseTag;
[segment addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
[segment setTitleTextAttributes:@{NSFontAttributeName :[UIFont fontWithName:@"HelveticaNeue" size:17.0], NSForegroundColorAttributeName : [UIColor darkGrayColor] } forState:UIControlStateNormal];
[segment setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:17.0],NSForegroundColorAttributeName : [UIColor whiteColor]} forState:UIControlStateSelected];
如果你没有像上面那样设置标题文本属性,那么你可以使用下面的代码
// ********** if titletextattributes are not set then below method works ***********
for(uint i=0;i<[segment subviews].count;i++)
{
for(UIView *view in [[[segment subviews] objectAtIndex:i] subviews])
{
if([view isKindOfClass:[UILabel class]])
{
[(UILabel*)view setNumberOfLines:0];
[(UILabel*)view setAdjustsFontSizeToFitWidth:YES];
[(UILabel*)view setMinimumScaleFactor:0.7];
}
}
}
您可以通过以下代码根据内容调整单个段的大小,
//*************** adjust single segment size as per content
segment.apportionsSegmentWidthsByContent = YES;
关于ios - 如何调整文本(字体)的大小以适应 UISegmentedControl 的 UISegment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38520242/
我希望我的应用程序有一个设置,当用户按下 UISegmented 控件中的一个片段时可以更改图像,但是,我只知道在导航栏中显示它。我将如何以有特定 View 的设置方式实现它,当用户按下一个片段然后按
正在更改所选段的颜色。它工作正常,但 uisegment 控件色调颜色设置为默认值,直到它被第一次触摸。 这是改变所选片段颜色的方法。它工作正常,但是当该段第一次出现时。它具有浅灰色。然后当我触摸它时
我有一个分段控制程序设置我正在尝试将结果保存到字符串中以供进一步使用 分段控件的代码如下我有问题谁能帮忙? let genderSelector: UISegmentedControl = {
我在 UISegmented 控件中有两个段。我想要的是根据运行时段的选择隐藏标签。 例如: if SegControl.selectedSegmentIndex == 1 { descrip
我正在尝试根据 UIsegmented 控件名称执行各种操作。 这是我的代码: - (UIView *)collectionView:(UICollectionView *)collectionVie
我在 uitableview 中插入一个分段 like this url image .如果您看到 url 图片,那么我现在工作正常,所有数据都在 uitable 中, 和... 当我向下滚动表格时,
如何使用分段控件更改背景图像? 我想使用段控制更改背景图像,然后为上述过程选择该图像。 最佳答案 这是 UISegmentedControl 文档的链接. 编辑 也许我误解了你的问题。如果要更改 Vi
下面是我用来设置 UISegment 控件的代码片段 //Add UIView below the nav bar UIView *buttonContainer = [[UIView alloc]i
这就是发生的事情,“男性”是主要的,所以它仍然被选中,当我选择“女性”时会发生这种情况,请告诉我为什么男性没有取消选择自己? 这就是我所做的连接段 Controller 为IBOutlet : @pr
我有一个在表格 View 中显示事件的应用程序。我有 UISegment 来按字母顺序对这个表进行排序。现在我想根据从用户位置到事件位置的距离对其进行排序。 我有一个包含事件对象的数组,每个对象都包含
我的应用程序中有一个 UISegmented 控件。我还有一个自定义按钮。我希望这个自定义按钮将 Segment 返回到 index 0 但也执行 index 0 的方法。 这是我的分段控件; - (
我已经设置了两个barbutton 项,一个在右边,一个在左边。右边的一个成功地在两个 View 之间切换,右边的第二个是一个分段控件,它应该像明智的那样在两个 View 之间切换。这是我的代码,我想
如标题所说,我正在尝试根据日期设置选定的段控件。我的段控件包括星期几,我还有一个日期和时间标签。打开 View 时必须选择适当的日期 我知道我必须做一些事情: segmentControl.selec
我正在使用 UISegmentControl 在表格 View 中显示目标类型的问题。但是,如果我在任何一个单元格中选择一个段,那么如果我滚动,一些段值就会改变。我不知道如何解决。请指导我。 单元格大
切换到 swift 后,我无法在索引处找到分段控件的对象 这是我一直以来的做法 [[segmentedControl subviews] objectAtIndex:0] 上面这行在 swift
我想通过单击分段控件来切换 UIView,但此代码不起作用。 @IBOutlet weak var flightTypeSegCont: UISegmentedControl! @IBAction f
如何更改 UISegmented 控件的高度。我在 xcode 8 中使用 Swift 3.0。默认情况下禁用高度属性。 最佳答案 我发现了这个: https://stackoverflow.com/
我正在维护 UISegmentControl 并使用单个 tableview 进行搜索。在这里,我从 JSON(语言列表)加载 tableview 数据。 现在我有两个段按钮,如源语言和目标语言,两个
如何水平自动拉伸(stretch) UISegmented 控件以填充整个 UITableViewCell?以一种在方向改变后它也会自动调整大小的方式。 我已经尝试了以下方法,但这仍然不起作用。分段控
有什么方法可以减小适合 UISegmentedControl 单个段的字体大小吗? 尝试过很多东西,比如, [[UILabel appearanceWhenContainedIn:[UISegment
我是一名优秀的程序员,十分优秀!