3

如果用户使用的是 iPhone 5,我想增加自定义按钮的大小。

这就是我的 .m 文件中的内容

//.m File
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        int varWidth = 228;
    }
    if(result.height == 568)
    {
        int varWidth = 272;
    }
}

....

[newButton setFrame:CGRectMake(8.0, 40.0, 228, 80.0)];

但我想要这样的东西:

[newButton setFrame:CGRectMake(8.0, 40.0, varWidth, 80.0)];
4

3 回答 3

4

您正在使用varWidth超出其范围。

int varWidth;

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        varWidth = 228;
    }
    if(result.height == 568)
    {
        varWidth = 272;
    }
}

....

[newButton setFrame:CGRectMake(8.0, 40.0, varWidth, 80.0)];
于 2013-04-06T07:39:33.487 回答
2
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
       [newButton setFrame:CGRectMake(8.0, 40.0, 228.0, 80.0)];
    }
    if(result.height == 568)
    {
       [newButton setFrame:CGRectMake(8.0, 40.0, 272, 80.0)];
    }
}

为什么不这样做呢?

另一个建议:

使用#define。

例如:

#define iPhone5width 272
#define iPhone4width 228

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
       [newButton setFrame:CGRectMake(8.0, 40.0, iPhone4width, 80.0)];
    }
    if(result.height == 568)
    {
       [newButton setFrame:CGRectMake(8.0, 40.0, iPhone5width, 80.0)];
    }
}
于 2013-04-06T07:43:45.057 回答
1

对于检查设备,最好和最简单的方法是iPhone 5 or iPhone5 < (Less Then)。为此,您需要在.pch项目文件中编写以下代码。

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

这个 Like 检查设备,是不是 iPhone5。

你只需要写一个条件来管理它

if( IS_IPHONE_5 )
        // set or put code related to iPhone 5.
else
        // set or put code related to less then iPhone 5.
于 2013-04-06T07:56:18.643 回答