【问题标题】:Multiline Text On UIsegment ControlUIsegment 控件上的多行文本
【发布时间】:2012-02-05 18:00:53
【问题描述】:

我有一个默认样式(白色)的 UISegmentControl。我想在上面添加文字。但是我想放在上面的文字是很长的文字。

我必须在一段的两行中显示文本。但由于屏幕宽度限制和段数,我不必提高段的宽度。

我曾尝试以编程方式在段控制上放置标签,但我的标签未显示。虽然我们可以使用 XIB 在段控制上贴上标签。但由于文本和段控制的动态特性,我必须以编程方式绘制段控制并将文本放在上面。

我们将不胜感激。

【问题讨论】:

    标签: iphone objective-c ios4 uisegmentedcontrol


    【解决方案1】:

    你好朋友段控制器已经有了标签作为子视图,所以这段代码有助于实现多行文本到段控制

    for (id segment in [segmentedControl subviews]) 
    {
        for (id label in [segment subviews]) 
        {
            if ([label isKindOfClass:[UILabel class]])
            {
                //hear u add any of delegate function to increase the height and other label functionality in this 
                [label setTextAlignment:UITextAlignmentCenter];
                [label setFont:[UIFont boldSystemFontOfSize:12]];
    //to adjust the label size manually with respect to text use below code
      CGSize labelSize = CGSizeMake(100, 80);
      CGSize theStringSize = [label.text sizeWithFont:label.font constrainedToSize:labelSize];
      CGRect frame = label.frame;
      frame.size = theStringSize; 
    
            }
        }           
    }
    

    祝你有美好的一天

    【讨论】:

    • 警告:此代码可能会在未来的 iOS 版本中中断,因为它使用 UISegmentedControl 的未记录属性。
    • 我不同意你的评论。大多数 (50-60)% 的应用程序在 iOS 中使用 varios 控件的未记录属性来自定义 UI。
    • 在我开发的应用程序中,我尽量不做这些事情。如果您使用未记录的属性,您的应用程序可能会停止工作或在新版本的 iOS 上运行时出现奇怪的行为:未记录的是也不支持!
    • 我不得不同意这可能不确定前进。更被接受的解决方案是将它们变成图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 2010-12-14
    • 2010-09-23
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多