是的,因为高度是随机的,就会有可能压在其它弹幕上,如果不想重叠就可能需要记录正在显示的区域高度范围,后进入的随机高度不能在正在显示的区域内。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
是的,因为高度是随机的,就会有可能压在其它弹幕上,如果不想重叠就可能需要记录正在显示的区域高度范围,后进入的随机高度不能在正在显示的区域内。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
我并不太清楚你代码的具体实现方式,你可以检查一下当切回来时这个view是否还存在,如果存在再看一下是否调用过shut方法,如果调用过shut方法,需要调一下open方法。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
我们平时在使用三方时会比较喜欢根据自己的意愿去封装一下三方,一般都会继承三方创建一些子类,用于对应不同的需求。有时三方会给我们留出接口供我们使用,但有时候并没有。如果我们去给...
SDWebImage是使用的NSURLSession来加载图片的,而NSURLSession是自带网络缓存的,当遇到服务端url相同而图片已经修改的情况,SDWebImage...
或者直接在delegate里加入view
自定义一个view,这里还是以CustomView为例
例子代码如下:
//重构弹幕样式
- (UIView *)refactoringView:(UIView *)view text:(id)text {
//这里重写label样式
CustomView *customView = nil;
// lj_barrageContent为自定义的view,在UIView+LJBarrageBind里有。
if ([view.lj_barrageContent isKindOfClass:[CustomView class]]) {
customView = view.lj_barrageContent;
} else {
customView = [[CustomView alloc] init];
[view addSubview:customView];
[customView mas_makeConstraints:^(MASConstraintMaker *make) {
// 自己加下布局...
}];
[view.lj_barrageLabel removeFromSuperview];
view.lj_barrageContent = customView;
}
// 设置参数
[customView setModel:model];
// 内部用的frame,需要及时知道布局情况。如果用的是frame,需要布局view的为customView的宽度。
// view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, customView.frame.size.width, view.frame.size.height);
[view layoutIfNeeded];
return view;
}
上面只是简单举个例子,具体代码还是需要你根据你的具体需求来写。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
你可以自定义一个view,这里假如叫CustomView
例子代码如下:
创建一个LJBarrageView的子view,重写getBarrageView方法
- (UIView *)getBarrageView {
CustomView *customView = [[CustomView alloc] init];
[self addSubview:customView];
[customView mas_makeConstraints:^(MASConstraintMaker *make) {
// 自己加下布局...
}];
return customView;
}
然后使用这个子view,在delegate里对CustomView进行赋值
//重构弹幕样式
- (UIView *)refactoringView:(UIView *)view text:(id)text {
//这里重写label样式
if ([view isKindOfClass:[CustomView class]]) {
CustomView *customView = view;
// 设置参数
[customView setModel:model];
// 内部用的frame,需要及时知道布局情况。
[customView layoutIfNeeded];
return customView;
}
return view;
}
上面只是简单举个例子,具体代码需要你根据你的需求来写,有疑问或者意见可以给我留言。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
已加。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
暂停弹幕这个功能还未实现,近期我会加上此功能。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
谢谢你的意见,我之前确实没有注意到点击的问题。
你可以为LJBarrageView添加手势,然后在手势点击时查看点击到哪个Label。
例子代码如下:
// 为LJBarrageView添加点击手势
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];
gesture.numberOfTapsRequired = 1;
[barrageView addGestureRecognizer:gesture];
// 点击事件
- (void)click:(UITapGestureRecognizer*)gesture {
CGPoint touchPoint = [gesture locationInView:self.barrageView];
for(UIView *subView in self.barrageView.subviews){
if([subView isKindOfClass:[UILabel class]]){
CALayer *layer = subView.layer.presentationLayer;
if(CGRectContainsPoint(layer.frame, touchPoint)){
// 获取点击Label
UILabel *label = (UILabel *)subView;
NSLog(@"click label text = %@", label.text);
}
}
}
}
上面只是举个例子,写的比较粗糙,具体代码你可以根据你的需求来写。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
//重构弹幕样式
- (UILabel *)refactoringLabel:(UILabel *)label text:(id)text;
你可以在delegate中为label添加手势。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
需要注意python的版本 brew install python3 //使用homebrew安装python pip3 installtensorflow==1.2.0 ...
可以将view的userInteractionEnabled改为NO。
iOS-弹幕这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...
这是一款可以快速集成,支持长连接不断传入数据的弹幕界面。 支持 pod 'LJBarrageView' 其中在UIView+LJBarrageTool.h里提供了简单集成的方...