2

我是 iPhone 新手,

    xpos=30;
    ypos=40;

for(int i=0;i<[MyArray count];i++)
        {            
            if(i!=0)
            {
                if (i%4==0) 
                {                    
                    ypos+=180;
                    xpos=30;
                }
                else
                {
                    xpos+=200;
                }
            }
            
            button = [UIButton buttonWithType:UIButtonTypeCustom];
            button.frame = CGRectMake(xpos, ypos, 110.0, 130.0);
            [button setImage: [UIImage imageNamed:@"ibook2.png"] forState:UIControlStateNormal];
            [button setTitleEdgeInsets:UIEdgeInsetsMake(ypos, xpos, 0.0, 0.0)];
            [button setTitle:[NSString stringWithFormat:@"%@", [MyArray objectAtIndex:i]] forState:UIControlStateNormal];
            [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
            [self.view addSubview:button];
}

我可以看到按钮,但无法在 UIButton 上看到我的文本。

任何帮助将不胜感激。

4

4 回答 4

4

请设置按钮背景图像。您已设置按钮图像。请使用这个:

[button setBackgroundImage:[UIImage imageNamed:@"blue_button.png"]
                            forState:UIControlStateNormal];

对于包装按钮标题用户:

[button setTitle:@"Test button name 123" forState:UIControlStateNormal];

 button.titleLabel.numberOfLines=2;

 button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
于 2012-07-23T07:03:01.170 回答
2

你看不到文字,因为你使用了 setImage: 按钮的功能。一次您可以在文本上显示图像或按钮,但您可以添加图像作为背景,这样您就可以看到图像和标题。简而言之,将图像设置为背景。

[btn setBackgroundImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateNormal];

请同时删除设置插图的行。

于 2012-07-23T06:42:49.177 回答
0

而不是设置

[button setImage: [UIImage imageNamed:@"ibook2.png"] forState:UIControlStateNormal];   // This will not allow you to set Button title.

你必须使用:

[button setBackgroundImage: [UIImage imageNamed:@"ibook2.png"] forState:UIControlStateNormal];    // This will allow you to set title along background button image.
于 2012-07-23T06:46:49.040 回答
0

如果您的图像太大,那么它只会显示图像和文本由于图像而被截断,因为文本将在图像之后可见,请尝试使用 setBackground 图像或尝试小分辨率图像或 setImageEdgeInsets 。

于 2012-07-23T06:46:50.007 回答