在我的应用程序中,我有一个视图弹出当前视图以帮助用户(如果需要)。 问题是:在iPhone 4上,该视图的关闭按钮看起来不错,而在iPhone 3GS上它有一个小突起。我不知道为什么。复选框也会发生同样的事情。
以下是Picasa相册中的图片(有2张图片,一张名为iPhone 3GS,另一张是iPhone 4,请看关闭按钮上方的凹凸和iPhone 3GS图片中的复选框。)
https://picasaweb.google.com/103964563927969565521/StackoverflowPosts?authkey=Gv1sRgCKWHu6mKj4OS5AE
这是用于创建关闭按钮的代码:
// Close button
closeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
float xCor = self.frame.size.width - kViewMargins - kCloseButtonWidth;
float yCor = y + ((self.frame.size.height - y) / 2 - kCloseButtonHeight / 2);
closeButton.frame = CGRectMake(xCor,
yCor,
kCloseButtonWidth,
kCloseButtonHeight);
[closeButton setTitle:kClose forState:UIControlStateNormal];
[closeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[[closeButton titleLabel] setFont:[UIFont boldSystemFontOfSize:kQuickTipTitleFontSize]];
[closeButton setBackgroundImage:[UIImage imageNamed:@"close_button.png"] forState:UIControlStateNormal];
[closeButton addTarget:self action: @selector (doneButtonClick) forControlEvents: UIControlEventTouchUpInside];
[self addSubview:closeButton];
我不知道该怎么办,请帮忙。
谢谢, 沙乌尔。
答案 0 :(得分:0)
我猜是因为我看不到你的close_button.png文件,但我认为问题是你的close_button.png和你正在创建的按钮大小不同,你看到的凹凸是默认的绘图圆形矩形按钮。
答案 1 :(得分:0)
嗯,看起来有点像RoundRect默认绘图正如Jon所说的那样从你的图形后面流出。我建议您将按钮类型更改为 UIButtonTypeCustom ,而不是弄乱图形:
closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
这将在您设置的图形和文本之外创建一个NO ui元素的按钮。
答案 2 :(得分:0)
closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage* closeImage = [UIImage imageNamed:@"close_button.png"];
float xCor = self.frame.size.width - kViewMargins - kCloseButtonWidth;
float yCor = y + ((self.frame.size.height - y) / 2 - kCloseButtonHeight / 2);
closeButton.frame = CGRectMake(xCor,
yCor,
closeImage.size.width/2,
closeImage.Size.height/2);
[closeButton setTitle:kClose forState:UIControlStateNormal];
[closeButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[[closeButton titleLabel] setFont:[UIFont boldSystemFontOfSize:kQuickTipTitleFontSize]];
[closeButton setBackgroundImage:closeImage forState:UIControlStateNormal];
[closeButton addTarget:self action: @selector (doneButtonClick) forControlEvents: UIControlEventTouchUpInside];
[self addSubview:closeButton];
[closeButton release]; /// you must release the closeButton