2010-12-29 11 views
0

テーブルビューのフッターに丸い四角のボタンを配置しました。iPhoneのボタンサイズを調整する

しかし、どのようにBUTTON_WIDTHを変更しても、ボタンは左右に縞模様になっています。しかし、高さは調整可能です。

問題が何ですか?以下は、私が使用したコードです。


#define BUTTON_WIDTH 80 
#define BUTTON_HEIGHT 45 

- (void)viewDidLoad { 
    CGRect frame = CGRectMake(0, 0, BUTTON_WIDTH, BUTTON_HEIGHT); 

// btnSeeResult is decleared in header file 
    btnSeeResult = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [btnSeeResult setTitle:@"Result" forState:UIControlStateNormal]; 
    [btnSeeResult addTarget:self action:@selector(seeResult) forControlEvents:UIControlEventTouchUpInside]; 
    btnSeeResult.frame = frame; 

    self.tableView.tableFooterView = btnSeeResult; 
} 

答えて

3

そのビューの幅が常にtableViewの幅に設定されますので、あなたが、tableView.tableFooterViewするボタンを設定しているからです。

フッターこのように、それにボタンを追加するビューとしてUIView黒を使用してみてください:あなたはCOMMENT-

理由に残っあなたの質問あたりとして

#define BUTTON_WIDTH 80 
#define BUTTON_HEIGHT 45 

- (void)viewDidLoad { 
    CGRect frame = CGRectMake(0, 0, BUTTON_WIDTH, BUTTON_HEIGHT); 

    // btnSeeResult is decleared in header file 
    UIButton *btnSeeResult = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [btnSeeResult setTitle:@"Result" forState:UIControlStateNormal]; 
    [btnSeeResult addTarget:self action:@selector(seeResult) forControlEvents:UIControlEventTouchUpInside]; 
    btnSeeResult.frame = frame; 

    // the width (320.0) actually doesn't matter here 
    UIView *footerView = [[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 80.0, 320.0)] autorelease]; 
    footerView.backgroundColor = [UIColor clearColor]; 
    [footerView addSubview:btnSeeResult]; 

    self.tableView.tableFooterView = footerView; 
} 
+0

OK。それは動作します。しかし、これ以上の質問はありません。 1.フッターとしてUIButtonを使用し、別のUIViewを使用することの違いは何ですか? UIViewからボタンが派生していませんか?結果は同じでなければならないと私は思う。 2. UIButtonを直接使用していたとき、高さを変更できました。ちょうど幅は変更できませんでした。何故ですか? – SeniorLee

2

@SeniorLeeフッタービューがテーブルビューの幅になるため、フッタービューとしてボタンを使用しているときには機能しませんでした。あなたのボタンがフッタービューになったとき、それはテーブルの幅でなければならないというルールに従っていたのです。

通常の古いUIViewを使用すると、フッタービューの代わりになり、幅はテーブルと同じ幅になります。しかし、あなたがそのビューに追加したものは、あなたが望むものである可能性があります。それは理にかなっていますか?

高さを変更できる理由は、フッタービューの高さに幅と同じ必須条件がないため、幅だけでなく、フッターの高さを変更できます。

+0

私は、UIViewとUIButtonの両方がストレッチされていないと思ったが、実際にはUIViewはストライキされていますが、描画されていないので、UIButtonのサイズは任意です。それは理にかなっている。どうもありがとうございました! – SeniorLee

関連する問題