Регулировка размера кнопки в iPhone - PullRequest
0 голосов
/ 29 декабря 2010

Я поместил кнопку с закругленными углами в нижний колонтитул табличного представления.

Но кнопка перемещается влево и вправо независимо от того, как я изменяю 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;
}

Ответы [ 2 ]

3 голосов
/ 29 декабря 2010

Это потому, что вы устанавливаете кнопку на tableView.tableFooterView, поэтому ширина представления всегда будет равна ширине tableView.

Попробуйте использовать черный UIView в качественижний колонтитул и добавление к нему кнопки, например:

#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;
}
2 голосов
/ 29 декабря 2010

@ SeniorLee согласно вашему вопросу, который вы оставили в комментарии-

Причина, по которой она не работала, когда вы использовали кнопку в качестве нижнего колонтитула, заключается в том, что нижний колонтитул ДОЛЖЕН быть ширинойвид таблицы.Вот почему, когда ваша кнопка БЫЛА вашим представлением нижнего колонтитула, она следовала правилу, что она ДОЛЖНА быть шириной таблицы.

Теперь, когда вы используете обычный старый UIView, она заменяет нижний колонтитул,и его ширина равна ширине таблицы.Таким образом, все, что вы добавляете в это представление, может быть таким, каким вы хотите.Имеет ли это смысл?

Причина, по которой высота может быть изменена, заключается в том, что высота нижнего колонтитула не имеет тех же обязательных условий, что и ширина, поэтому вы можете изменять высоту нижнего колонтитула сколько угодно, только неширина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...