【问题标题】:UISegmentedControl setImage: or setText: not workingUISegmentedControl setImage:或 setText:不起作用
【发布时间】:2012-01-21 19:30:24
【问题描述】:

我在 xib 中的视图中都有一个 UISegmentedControl。在我的应用程序委托中,我正在使用 initWithNibName: 创建作为 xib 文件所有者的控制器,然后将其包装在导航控制器 (UINavigationController initWithRootViewController) 中。

然后我尝试在分段控件中设置元素的图像或标题,如下所示:

[self.viewController.segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3];
[self.viewController.segmentControl setTitle: @"some text" forSegmentAtIndex: 2];

分段控件出现,但 setImage: 和 setTitle: 无效。 前两个单元格分别表示 First 和 Second,它们是最初在 IB 中拖放时分配的默认值。

segmentControl 是一个 IBOutlet,我已经确认它已连接到分段控件。

为什么它不起作用?

我可以在 IB 中设置图像或文本并且它可以工作,但我想了解为什么我不能以编程方式设置它们。

(分段控件有6个索引)。

【问题讨论】:

  • 您是否通过 NSLog self.viewController.segmentControl 确认(最重要的地方)它不是 nil?
  • 它没有被创建——我认为在调用 initWithNibName: 时会创建 nib 中的所有内容?如果我在委托中检查它时它为零,那么它是如何显示的?
  • 不确定它没有被创建,因为没有设置 ivar/property。 IB的东西我真的帮不上忙;我没用过,忘记怎么用了……

标签: objective-c ios cocoa-touch


【解决方案1】:

为什么要在应用委托中设置分段控件?您不应该在文件所有者(viewController)中调整它的属性吗?我可能会在 viewController 的 viewDidLoad 方法中执行此操作,或者因为您无论如何都在使用 IB,所以只需在此处设置图像和标题属性(在您的 XIB 中)。

【讨论】:

    【解决方案2】:

    使用此代码

    [segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3];
    [segmentControl setTitle: @"some text" forSegmentAtIndex: 2];
    

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多