0

プロジェクトにこのカスタム NavigationBar クラスを実装しました: Video with Issue

#import "PTTNavigationBar.h"
@implementation PTTNavigationBar

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

}
    return self;
}


// Overriding drawRect: perform custom drawing.
// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect
{
    // Drawing code
    UIImage *navBarImage = UIIMAGE_NAMED( kNavBarBackGroundImage );
    [navBarImage drawInRect:CGRectMake(0, 0, NAVBAR_SIZE.width , NAVBAR_SIZE.height)];

    [self setBackgroundColor:[UIColor clearColor]];

}

- (CGSize)sizeThatFits:(CGSize)size {

    //[self setTitleVerticalPositionAdjustment:-12 forBarMetrics:UIBarMetricsDefault];
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    CGSize newSize = CGSizeMake(frame.size.width , NAVBAR_SIZE.height);
   [self layoutSubviews];

    return newSize;
}


-(void) layoutSubviews
{
    [super layoutSubviews];

    [self setBackgroundColor:[UIColor clearColor]];

    for (UIView *view in self.subviews)
   {
       CGRect frame = view.frame;
       frame.origin.y = 6;
       view.frame = frame;
    }


}

@end

誰でもこれで私を助けることができます?? どうも

4

1 に答える 1

1

コードを使用して leftBarButton にカスタム ボタンを追加していると仮定しています。

次のコードは、barButtonItem の境界内でのタッチを制限する必要があります。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:buttonImage forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
[button addTarget:self action: @selector(handleBackButton)forControlEvents:UIControlEventTouchUpInside];

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height)];
[view addSubview:button];

UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:view];
self.navigationItem.leftBarButtonItem = customBarItem;
于 2013-05-22T09:12:52.567 に答える