Gia*_*Pac 0 iphone core-graphics objective-c uiwebview drawrect
在创建tableViewCell的内容视图时,我在drawRect中使用了drawInRect:withFont,drawAtPoint ......等等,因为我需要的只是放置一些文本.事实证明,所绘制文本的一部分需要是可点击的URL.所以我决定创建一个UIWebView并将其插入到我的drawRect中.一切似乎都很好,问题是没有发生与UIWebView的交互.我尝试启用交互,没有用.我想知道,因为使用drawRect:我正在绘制当前的图形上下文,我可以做些什么来让我的子视图与用户交互?
这是我在UITableViewCell类中使用的一些代码.
-(void) drawRect:(CGRect)rect{
NSString *comment = @"something";
[comment drawAtPoint:point forWidth:195 withFont:someFont lineBreakMode:UILineBreakModeMiddleTruncation];
NSString *anotherCommentWithURL = @"this comment has a URL http://twtr.us";
UIWebView *webView = [[UIWebView alloc] initWithFrame:someFrame];
webView.delegate = self;
webView.text = anotherCommentWithURL;
[self addSubView:webView];
[webView release];
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,视图很好,但是没有与外部的webView交互.URL嵌入到HTML中,应该是可点击的.它不是.我让它在另一个视图上工作,但在那个视图上我提出了看法.有任何想法吗?
您不希望创建新的UIWebView并将其添加为每个调用的子视图.drawRect:这是一个非常糟糕的主意:
UIWebView物体.所以你基本上将成千上万的它们叠加在一起.您应该创建UIWebView 一次,可能在初始化程序中,或者只调用一次的其他方法.您还应该只将其添加为子视图一次.
创建数千个这些视图的行为肯定会导致您的问题.
如果你的视图正在改变位置/大小,那么你可以覆盖setFrame:并且除了调用超类的方法之外,调整UIWebView你肯定想要作为实例变量维护的框架.
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |