0

私のアプリでは、必要に応じてユーザーを支援するために、現在のビューの上にポップするビューがあります。問題はこれです: iPhone 4 では、そのビューの閉じるボタンはきれいに見えますが、iPhone 3GS では、その上に小さな隆起があります。理由がわかりません。チェックボックスでも同じことが起こります。

これが Picasa アルバムの写真です (2 つの写真があります。1 つは iPhone 3GS と呼ばれ、もう 1 つは 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];

どうすればいいのかわからない、助けてください。

ありがとう、シャウル。

4

3 に答える 3

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
于 2011-08-01T21:34:59.537 に答える
0

close_button.png ファイルが表示されないので推測していますが、問題は close_button.png と作成しているボタンのサイズが異なり、表示されているバンプがラウンドのデフォルトの描画であることだと思います直角ボタン。

于 2011-08-01T07:54:36.270 に答える
0

うーん、Jon が言ったように、RoundRect のデフォルトの描画がグラフィックの後ろからにじみ出ているように見えます。グラフィックをいじるよりも、ボタンのタイプをUIButtonTypeCustomに変更することをお勧めします。

closeButton = [UIButton buttonWithType:UIButtonTypeCustom];

これにより、設定したグラフィックとテキストの外側に ui 要素がないボタンが作成されます。

于 2011-08-01T21:25:25.447 に答える