如何在ios中为不同大小的类使用相同的Outlet?

时间:2015-07-22 04:39:11

标签: ios objective-c iphone xcode ipad

我有一个要求,我想为iPhone和iPad显示不同的用户界面iPad所以我没有使用不同的故事板,而是使用了不同大小的类。我在iPhone和iPad上都没有标签。 iPad.Values of label在运行时设置,所以我使用了插座。我有一个单一的视图控制器,大小类,以便我可以在iOS上的不同屏幕之间切换。现在,我只能连接一个插座的任何一个如果我连接iPhone的插座,那么IPad插座不工作&反之亦然。请打电话给我,我如何使用相同的尺寸类别?

2 个答案:

答案 0 :(得分:2)

我今天遇到了同样的问题,我找到了解决方法。在Attributes Inspector中,我们可以选择要在多个大小类中安装的标签,如下所示:

Install size classes

然后标签将出现在您安装的尺寸类中,您不必为每个尺寸类添加新标签。使用标签创建/连接插座时,插座将在已安装的尺寸类别中共享。

答案 1 :(得分:0)

我无法将其添加到评论中,因此我将其作为答案发布。

阅读评论我可以得出结论:

您应该使用通用类Any Width, Any Height)。

Size classesInterface Builder的一项功能,负责展示您应用的view。虽然UILabel的值由Model(实际值)和Controller(ViewController.m)管理。不管你喜欢与否,你必须将控制器带入画面。

在发布此答案之前,我尝试将两个不同的标签连接到同一个插座,然后使用viewWithTag:方法根据应用运行的设备设置插座以更正视图,它没有'工作。

以下是我使用的片段

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

        _label = (UILabel *)[self.view viewWithTag:2];
    }
    else{
        _label = (UILabel *)[self.view viewWithTag:1];
    }

仍然像@sheshnath所说,使用通用大小类没有任何问题。