繁体   English   中英

iOS导航栏后退按钮的大小

[英]iOS size of navigation bar back button

我正在创建一个更高的导航栏,高度== 200,但是,当我单击“后退”按钮下方时,它也会向后导航。

在此处输入图片说明

这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;

    navBar = [[SRNavigationBar alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 200.0)];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:YES animated:NO];
    [self.navigationItem setHidesBackButton:YES animated:YES];

    __weak id weakSelf = self;
    self.navigationController.interactivePopGestureRecognizer.delegate = weakSelf;

[self styleNavBar];
}

- (void)styleNavBar
{
    UINavigationItem *newItem = [[UINavigationItem alloc]initWithTitle:[[PFUser currentUser] objectForKey:@"nickName"]];

    UIBarButtonItem *menu = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"back"] style:UIBarButtonItemStyleDone target:self action:@selector(back)];
    newItem.leftBarButtonItem = menu;
    newItem.leftBarButtonItem.tintColor = [UIColor colorWithRed:245/255.0 green:124/255.0 blue:0/255.0 alpha:1];

    [navBar setItems:@[newItem]];

    [self.view addSubview:navBar];
}

- (void)back
{
    [self.navigationController popViewControllerAnimated:YES];
}

任何帮助将不胜感激

您可以根据需要使用自定义按钮设置高度

-(void)addLeftButton
{
     UIImage *buttonImage = [UIImage imageNamed:@"btn_back.png"];

     UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];

     [aButton setBackgroundImage:buttonImage forState:UIControlStateNormal];

     aButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, 200.0);

     UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];

     [aButton addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];

     [self.navigationItem setLeftBarButtonItem:aBarButtonItem];
}

苹果支持:

我建议您避免在靠近导航栏或工具栏的地方设置触敏用户界面。 这些区域通常称为“倾斜因素”,使用户可以更轻松地执行按钮上的触摸事件,而无需执行精确的触摸。 例如,UIButton也是如此。

但是,如果要在导航栏或工具栏接收到触摸事件之前捕获它,则可以将UIWindow子类化并重写:-(void)sendEvent:(UIEvent *)event;

https://stackoverflow.com/a/9719364/2138564

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM