相关疑难解决方法(0)

使用Objective-C中的类别覆盖方法

我可以使用类类别来覆盖已使用类别实现的方法吗?像这样:

1)原始方法

-(BOOL) method {
  return true;
}
Run Code Online (Sandbox Code Playgroud)

2)覆盖方法

-(BOOL) method {
  NSLog(@"error?"); 
  return true; 
}
Run Code Online (Sandbox Code Playgroud)

这会起作用,还是非法的?

objective-c categories

87
推荐指数
3
解决办法
5万
查看次数

UINavigationBar UIBarButtonItems比所需的点击区域大得多

希望有人可以帮助我 - 我在网上搜索答案,但找不到 -

添加到UINavigationBar的UIBarButtonItem具有比所需更大的点击区域 - 例如,打开任何项目,你有一个带按钮的导航栏,点击按钮结尾和导航栏标题之间​​的任意位置 - 按钮点击,当你明显没有点击按钮时 -

也可以尝试这一点 - 点击导航栏下方,按钮下方,按钮点击导航栏下方约5个像素 -

我的问题是这个 -

我已经增加了一个自定义首部和按钮,用于一个tableview-但是当我点击标题中的按钮,所述按钮UINavigationBar的触发对那些5+像素代替按钮在tableview中报头 -

我做了一个测试,并从UINavigationBar中删除了按钮,有趣的是,对于导航栏下方的5个像素,即使导航栏中没有按钮,标题中的按钮也不会触发 -

它几乎像导航栏一样保留了低于其自身的5个像素作为点击空间 -

我的问题是这个 -

有人可以告诉我如何使导航栏没有为其按钮抓取额外的5+像素?

非常感谢 ;)

iphone uinavigationbar uibarbuttonitem

35
推荐指数
2
解决办法
9992
查看次数

如何以编程方式为UINavigationController创建UINavigationBar的子类?

我正在使用自定义drawRect函数UINavigationBar在iOS4中跨我的应用程序进行绘制,它不使用图像,只使用CoreGraphics.

由于您无法UINavigationBar在iOS5中实现类别中的drawRect ,因此Apple建议使用子类UINavigationBar.

当属性是只读时,如何替换UINavigationBarmy子类UINavigationController(因此它将与iOS4和iOS5兼容)navigationBar

@property(nonatomic, readonly) UINavigationBar *navigationBar
Run Code Online (Sandbox Code Playgroud)

我根本不在我的应用程序中使用XIB,因此添加UINavigationBar到NIB并通过InterfaceBuilder更改类不是一种选择.

iphone cocoa-touch uinavigationbar uinavigationcontroller ios

23
推荐指数
3
解决办法
2万
查看次数

为什么我的UISegmentedControl的顶部不可点击?

当我在手机上玩时,我注意到我的UISegmentedControl响应不是很快.需要2次或更多次尝试才能使我的水龙头注册.所以我决定在Simulator中运行我的应用程序,以更准确地探测出错了什么.通过用鼠标点击几十次,我确定UISegmentedControl的前25%没有响应(下面的屏幕截图中的部分用Photoshop突出显示为红色).我不知道有什么看不见的UIView可以阻止它.你知道怎么让整个控件可以安装吗?

uinavigationbar uisegmentedcontrol

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Uno", @"Dos", nil]];
self.segmentedControl.selectedSegmentIndex = 0;
[self.segmentedControl addTarget:self action:@selector(segmentedControlChanged:) forControlEvents:UIControlEventValueChanged];
self.segmentedControl.height = 32.0;
self.segmentedControl.width = 310.0;
self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
self.segmentedControl.tintColor = [UIColor colorWithWhite:0.9 alpha:1.0];
self.segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

UIView* toolbar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, HEADER_HEIGHT)];
toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = CGRectMake(
        toolbar.bounds.origin.x,
        toolbar.bounds.origin.y,
        // * 2 for enough slack when iPad rotates
        toolbar.bounds.size.width * 2,
        toolbar.bounds.size.height
    );
    gradient.colors = [NSArray arrayWithObjects:
        (id)[[UIColor whiteColor] CGColor],
        (id)[[UIColor 
            colorWithWhite:0.8 …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch uisegmentedcontrol ios

15
推荐指数
1
解决办法
2169
查看次数

触摸未调用导航栏~8像素内的事件

我有一个应用程序,有三个按钮(实际上UIView是)水平放置导航栏下方.

这三个按钮的尺寸足够大(例如,比后退按钮大),但是当击中大致位于前三分之一时,它们不会响应触摸.

我知道直接位于导航栏下方的这个区域对于后退按钮和其他UINavigation项目来说是"保留"的,其触摸区域扩展到导航栏之外(相当大的余量),但在某些情况下还有甚至附近的一个导航项目来窃取事件,我的观点仍然没有回应.

奇怪的是,我正在调用hitTest我的UIView中的方法,而不是touchesBegan/Ended/etc.

结果是按下按钮是非常困难的,如果一个在a附近的任何地方UINavigationItem,该项目将窃取事件,即使hitTest我正在返回正确UIView的系统.

不幸的是,我是实施者,而不是设计师,因此设计变更是最后的手段.

有任何想法吗?谢谢!

iphone uinavigationbar uiview

9
推荐指数
1
解决办法
2269
查看次数

UIBarButtonItem的点击区域太大

我知道有些人已经提出了这个问题,但到目前为止,答案并不是真正具体的.

显然苹果已经使NavigationBar的点击区域比实际大,但我不认为它应该那么大.

在我的应用程序中,NavBar下方有一个TableView,你可以一直点击第一个单元格的一半来触发rightBarButtonItem的事件.按钮的实例如下:

    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editTable)];
 [[self navigationItem] setRightBarButtonItem:editButton];
Run Code Online (Sandbox Code Playgroud)

"self"是NavigationController的根ViewController.

你可以想象,这是一个问题,因为单元格可以选择推送另一个ViewController.

我设法通过使细胞的高度更大来解决问题,但我宁愿让它们处于常规尺寸.

我确信我不是唯一有这种情况的人.提前致谢.

iphone uibarbuttonitem

4
推荐指数
1
解决办法
4805
查看次数