Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

弹幕区域无法全屏 #12

Open
dedencLichKing opened this issue Nov 11, 2024 · 4 comments
Open

弹幕区域无法全屏 #12

dedencLichKing opened this issue Nov 11, 2024 · 4 comments

Comments

@dedencLichKing
Copy link

你好,请问一下我已经把DanmakuView的view设置成了vc.view的frame,然后trackHeight设置的30,displayArea设置的1.0。只开启了floatingTracks弹幕。为什么弹幕的显示区域还是特别小,只在上半部分。
打印发现
image
里面的positionY左边已经改了。但是最终绘制出来的弹幕 还是只有屏幕上部一点点区域,修改过其他的一些frame也没有起作用。
请问大佬 如何让弹幕铺满全屏。

@qyz777
Copy link
Owner

qyz777 commented Nov 23, 2024

我不太了解你遇到具体问题的上下文。但弹幕要铺满全屏的前提是弹幕数量足够多,在轨道足以发送弹幕的情况下弹幕会自上而下的发送,可以查看一下Demo的效果

@dedencLichKing
Copy link
Author

抱歉没有描述的太清楚。场景是这样子的:
我需要在vc的背景上面展示弹幕,view的尺寸就是UIScreen.main,目前弹幕的数量是30条
出现的问题是,在上述图片里面,虽然计算了positionY的坐标,但是在真正显示的时候,是在
func shoot(danmaku: DanmakuCell)里面,计算了layer
danmaku.layer.position = CGPoint(x: view.bounds.width + danmaku.bounds.width / 2.0, y: positionY)
这里面位置不正确,导致弹幕只在几个固定位置显示。
image
下图是我简单修改之后的逻辑,暂时可以保证全屏是都有的(仅仅是控制了Y坐标)

@dedencLichKing
Copy link
Author

demo的效果我也试过了,跟我描述的问题是一样的。

@qyz777
Copy link
Owner

qyz777 commented Nov 23, 2024

不好意思,我还是没太理解你的实际问题,positionY是提前为弹幕轨道计算好的位置,真正展示前会自上而下取到合适的轨道进行展示。获取轨道发送弹幕的逻辑取决于是否弹幕是否会重叠。从你的代码改动来看,我推测你需要的效果是按照index逐行发送弹幕,这属于你的定制化逻辑。
如果你用demo调短发送间隔,发送足够多的弹幕,你会发现它能够铺满view的高度,但可能并不符合你想要的结果。
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants