2013-04-20 5 views
1

Это, как я установил кнопку навигационной панельограничить осязаемый область UIButton

UIButton *addEditButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [addEditButton setImage:[UIImage imageNamed:@"edit.png"] forState:UIControlStateNormal]; 
    [addEditButton setFrame:CGRectMake(0, 0, 62, 31)]; used frame same as image 

    [addEditButton addTarget:self action:@selector(EditTable) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *addEdit = [[UIBarButtonItem alloc] initWithCustomView:addEditButton]; 
    self.navigationItem.leftBarButtonItem =addEdit; 

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

Это что изображение enter image description here

+0

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

ответ

1

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

1

Я считаю, что вы получили эту проблему, потому что изображение, которое вы устанавливаете меньше Тана фактического размера кнопки. пожалуйста, либо уменьшите размер кнопки, либо увеличьте изображение.

Надеюсь, это вам поможет.

+0

Я проверил размер изображения, а затем установил рамку с кнопками, они оба такие же, как и для ashok –

+0

Iam sorry, Iam не очень эксперт в этом, я не знаю, если вы уже пробовали это, но то, что я сделаю в этой ситуации, это то, что i попробовал бы установить цвет фона на кнопку, чтобы границы кнопок были поданы, и я мог бы обеспечить, чтобы данное изображение помещалось внутри кнопки. Вы попробовали это и пракаш? – Ashok

+1

Это нормально, я скажу вам, пожалуйста, попробуйте этот код, [кнопка setBackgroundColor: [UIColor redColor]]; замените кнопку названием вашей кнопки – Ashok

0

Кажется, что это работает только так, но я придумал решение.

Вы можете скрыть свою панель навигации и использовать панель инструментов.

Другое, вы можете добавить еще одну кнопку после этого и установить для нее включенную функцию FALSE.

Я не знаю, правильно это или нет, но, по-видимому, выполняет ваше требование как минимум.

Вот код:

UIButton *addEditButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[addEditButton setFrame:CGRectMake(0, 0, 62, 31)]; 

[addEditButton setImage:[UIImage imageNamed:@"edit.png"] forState:UIControlStateNormal]; 

[addEditButton addTarget:self action:@selector(EditTable) forControlEvents:UIControlEventTouchUpInside]; 

UIButton *addEditButton1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
[addEditButton1 setFrame:CGRectMake(63, 0, 30, 31)]; 

UIBarButtonItem *addEdit = [[UIBarButtonItem alloc] initWithCustomView:addEditButton]; 
UIBarButtonItem *addEdit1 = [[UIBarButtonItem alloc] initWithCustomView:addEditButton1]; 
addEdit1.enabled = FALSE; 


NSMutableArray *buttonArray=[[NSMutableArray alloc]initWithCapacity:2]; 
[buttonArray addObject:addEdit]; 
[buttonArray addObject:addEdit1]; 

self.navigationItem.leftBarButtonItems =buttonArray; 
+0

Hinata Я не понимаю, почему вы все это сделали, почему сделала эту другую кнопку с другим фреймом и добавила их в массив, а затем leftbarbuttoniteam, пожалуйста, объясните это. я не знаю, я не понимаю –

Смежные вопросы