2010-07-22 90 views
0

我想知道是否有人尝试过。当用户在文本行中选择一个单词时,我需要在表格视图中显示工具提示。在iphone表格视图中显示工具提示

有什么复杂的?这样做的最好方法是什么?

提前致谢!

回答

1

您可以设计一个显示该工具提示的新视图。 然后,您可以将新视图添加到tableviewcontrollers子视图。这可以在didSelectRowAtIndexPath或类似的东西中完成。您将相应的信息传递给新的视图并将其添加为子视图。取决于你想交给视图的数据,为此目的可能需要编写一个自己的视图控制器。

您需要提供关闭工具提示的方法。当然,你必须提供一种方法来选择“以预期的方式”(如果nessesairy)的行,然后可能是双重行动。林不知道是否有媒体链接是一种方法,这与框架,但我猜你必须写自己的tableviewcontroller子类...

希望这有助于

编辑:

嘿曼西,我没有测试它,但关闭我的头顶我会说它应该这样工作...... 你创建你自己的UITableView子类。 UITableView继承自UIResponder,所以你可以在你的tableview-subclass中实现“touchesBegan:” - 方法。在这种方法中,你实例化你的tooltip-view-subclass,将它作为tableview的子视图并将它的位置设置为触摸的坐标,你可能想要将水平位置设置为固定或独立计算的值,以防止工具提示显示在屏幕外。


#import 
#import 

@interface myTableView : UITableView { 
    MyToolTip *tooltip; 
} 

@end 

#import "myTableView.h" 

@implementation myTableView 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    tooltip = [[MyToolTip alloc] init]; 

    CGPoint location = [[touches anyObject] locationInView:self]; 
    location.x = ([[UIScreen mainScreen] bounds].size.width/2) - (tooltip.bounds.size.width/2); 

    tooltip.bounds.origin = location; 
    [self addSubview:tooltip]; 
    [NSTimer timerWithTimeInterval:3.0 target:self selector:@selector(removeTooltip) userInfo:nil repeats:NO]; 
} 

- (void)removeTooltip { 
    [tooltip removeFromSuperview]; 
} 


@end 
+0

感谢托比。但是,我想了解的是,如何计算表格视图中的显示工具提示的位置。它需要显示在句子中的特定单词的顶部。有没有计算句子中特定单词坐标的方法? 我希望我能解释我的问题... – Mansi 2010-07-23 01:30:27

+0

即时通讯不知道,如果你可以从框架中获取单元格的坐标。但是如上所述,由于用户点击要显示工具提示的行,因此我认为触摸坐标可以做到这一点。如果你想独立于触摸坐标,恐怕你不得不“测量”单元的高度,并用行号计算它们的垂直位置。 – Tobi 2010-07-24 23:06:04

+0

哦,也许我再次弄错了,你是在谈论一个单元格内的特定位置? – Tobi 2010-07-24 23:08:55