我正在编写一个嵌入在Web应用程序中的python实时聊天功能.我对实时实现有点困惑.我需要将实时消息推送给不同的用户.
我打算使用websocket,但我不太确定如何将这些套接字保存到数组中,这样一旦用户向服务器发送消息,服务器就可以找到相关的套接字并推送消息.
所以对此有任何想法吗?或者实现实时聊天功能的常用方法是什么?
提前致谢.
我正在使用immutable.js,我的数据结构如下:
class ItemList extends Record({
items: new List()
})
Run Code Online (Sandbox Code Playgroud)
我想编写更改此列表中的一个项目并保持其他相同的功能.例如,{1,2,3,4}的列表,如果项目等于2,我需要一个函数,将其更改为5.
我正在使用类似的东西
updateInfo(updatedInfo) {
return this.withMutations(itemList => {
itemList.set('items', list);
});
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在这个函数中,我怎样才能更新一个项目?我应该把if判断放在哪里?
谢谢!
我有一个 UICollectionView,每个页面的大小与屏幕完全相同。滚动方向是水平的。我想在视图滚动时获取当前可见的单元格。
例如,如果我在一个完整的页面上,我只得到这个页面的索引,如果我在两页的中间滚动,那么我可以得到这两个页面的索引。我知道有indexPathsForVisibleItems
方法。它适用于在中间滚动时的情况。它将返回两个单元格的索引。
但是如果我在整个页面上,它也会返回两页。更奇怪的是,这发生在我的 iPhone 7 Plus 上,但是当我在 iPhone 6s 上测试时,它工作正常并返回当前页面的单个索引。
似乎该方法不适用于大屏幕?
我的收藏视图:
CGSize screenSize = [UIScreen mainScreen].fixedBounds.size;
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flowLayout.minimumLineSpacing = 0.0;
flowLayout.minimumInteritemSpacing = 0.0;
flowLayout.itemSize = screenSize;
UIColloctionView *collectionView =
[[UICollectionView alloc] initWithFrame:SCRectMakeWithSize(screenSize) collectionViewLayout:flowLayout];
collectionView.backgroundColor = [UIColor clearColor];
collectionView.scrollsToTop = NO;
collectionView.pagingEnabled = YES;
collectionView.showsHorizontalScrollIndicator = NO;
collectionView.showsVerticalScrollIndicator = NO;
Run Code Online (Sandbox Code Playgroud)
我用来获取当前可见索引的方法:
NSArray<NSIndexPath *> *indexPaths = [_tabsCollectionView indexPathsForVisibleItems];
Run Code Online (Sandbox Code Playgroud)
在较大的屏幕上,当我查看整个页面时,这将返回 2 个项目。
我正在尝试从左到右逐步更改 UILabel 的文本颜色。我发现我可以使用 UIView 的动画:
[UIView transitionWithView:_label duration:1 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
_label.textColor = [UIColor redColor];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
但问题是我的情况没有选择:从左到右逐渐进行。
然后我找到了一种通过调用以下命令来逐个字母地更改文本颜色的方法:
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(yourSelector) userInfo:nil repeats:NO];
- (void)yourSelector
{
[_string setAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]} range:NSMakeRange(_index, 1)];
[_label setAttributedText:_string];
_index++;
}
Run Code Online (Sandbox Code Playgroud)
但这里的问题是,我希望动画更像是一个字母一个字母,但每个字母也有动画,就像有两个不同颜色的标签放置在同一位置(黑色覆盖红色),然后从左到右对蒙版进行动画处理向右隐藏黑色标签,以便红色标签逐渐显示。
那么有没有办法实现这一点呢?
ios ×2
objective-c ×2
animation ×1
chat ×1
immutable.js ×1
javascript ×1
python ×1
real-time ×1
redux ×1
text ×1
uilabel ×1
websocket ×1