我正在尝试按照本指南,但使用swift: InputAccessoryView停靠在底部
我似乎无法为我的ViewController设置inputAccessoryView,根据文档,我需要重新声明它:
此只读属性的值为nil.如果要将自定义控件附加到系统提供的输入视图(例如系统键盘)或自定义输入视图(您在inputView属性中提供的视图),请在UIResponder子类中将此属性重新声明为read-write.然后,您可以使用此属性来管理自定义附件视图.当接收器成为第一响应者时,响应者基础结构在显示它之前将附件视图附加到适当的输入视图.
我无法弄清楚如何使用swift来做到这一点.任何帮助是极大的赞赏.
我正在寻找有关如何在动画时让客户端保持同步的想法.我正在尝试使用meteor构建基于浏览器的提词器.我有基本的功能,我可以设置字体大小和滚动速度,但我还没有想出一个可靠的方法来保持所有客户端同步滚动开始.
到目前为止,我尝试了两种方法,两种方式都有效,但两种方式都不完美
我的第一个想法是在服务器上运行一个间隔来更新Collection的位置.这在LAN上工作得很好,但是一旦我移动到互联网,更新和客户端上观察到的更新之间的延迟时间导致滚动结果.这是代码的样子:
服务器:
if(Meteor.isServer){
Meteor.methods({
start_scroll: function(){
interval = Meteor.setInterval(function() {
var _speed = Prompter.findOne({_var:"prompter_speed"})._val;
Prompter.update({_var:"prompter_y"}, {$inc:{_val:(-1*_speed/4)}});
}, 30);
}, ...
}
Run Code Online (Sandbox Code Playgroud)
客户:
if(Meteor.isClient){
Prompter.find({_var: "prompter_y"}).observe({
changed: function(pos){
$("#inner_scroll").css({top: pos._val});
}
});
}
Run Code Online (Sandbox Code Playgroud)
上述版本的主要问题是观察更新的任何延迟都会导致动画断断续续.所以,我决定在客户端进行动画制作.这就是我想出来的:
服务器:
if(Meteor.isServer){
Meteor.methods({
start_move: function(){
Prompter.update({_var:"prompter_move"},{$set:{_val:1}});
}, ...
}
Run Code Online (Sandbox Code Playgroud)
客户:
if(Meteor.isClient){
Prompter.find({_var: "prompter_move"}).observe({
changed: function(obj){
if(obj._val == 1){
interval = Meteor.setInterval(function(){
var cp = parseFloat($("#inner_scroll").css("top"));
var sp = parseInt(Session.get("_speed"));
var mv = cp + (-1 * sp)/4;
$("#inner_scroll").css("top", mv);
}, 30);
}
else{
Meteor.clearInterval(interval);
} …Run Code Online (Sandbox Code Playgroud)