我有一个ScrollView,它有两个隐藏的图像,一个在顶部,一个在底部.在两者之间有一堆可见的内容.
我需要做的是默认隐藏这些图像,但是当你向上滚动或完全向下滚动时,你可以在滚动时看到它们.但是一旦你停止滚动它就应该反弹到可见区域,这样就不会显示隐藏的图像.
基本上我试图模仿iphone UIScrollView的反弹滚动功能.
我有我的ScrollView所有设置,我在开头滚动,以隐藏顶部隐藏的图像.现在我需要做的就是检测滚动何时结束,找出Y位置,并检查是否显示隐藏图像.如果是,我只是以编程方式向后滚动视图,以隐藏隐藏的图像.
我希望所有这些都是有道理的.
所以无论如何,我知道如何以编程方式滚动ScrollView.现在我需要的是某种回调告诉我什么时候ScrollView结束滚动,也是一种获取ScrollView当前'Y'位置的方法.我可以使用任何这样的方法吗?
我查看了ScrollView文档,但没有任何内容跳出来.我仍然不太熟悉Android命名方案,所以也许我错过了一些明显的东西.
无论如何,任何帮助将在这里受到赞赏.干杯.
我的应用程序使用AVAudioPlayer播放背景音频,并从iOS接收远程控制事件.音频播放时一切正常,但如果音频暂停并且我的应用程序移动到后台,则会发生奇怪的事情.如果我使用蓝牙设备在10分钟后恢复/取消暂停音频,iOS将使用以下消息终止我的应用:
<MyApp>[633] has active assertions beyond permitted time:
{(
<SBProcessAssertion: 0x25f520> identifier: com.apple.mediaremote.sendremotecommand process: <MyApp>[633] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:58
)}
Run Code Online (Sandbox Code Playgroud)
这有两件非常奇怪的事情.
iOS不会在10分钟后关闭我的应用程序.只有在通过蓝牙接收远程控制命令后才会这样做.
如果我在耳机上使用iOS的遥控器按钮或遥控器,我的应用程序将继续播放音频而不会有任何问题.
我无法弄清楚为什么蓝牙遥控器消息会导致iOS终止我的应用程序.我已经能够确认Pandora应用程序似乎没有类似的问题.
有没有人对此有所了解?
更新:进一步测试揭示了对错误的更清晰的描述.在音频暂停10分钟或更长时间并且应用程序遇到内存不足警告后,尝试恢复背景音频时,似乎会发生应用程序强制iOS崩溃.
以下步骤是重现错误所必需的:
注意:当从外部设备(如蓝牙设备,扬声器底座或汽车适配器)启动最终远程控制事件时,iOS似乎只会强制崩溃应用程序.使用iOS的内置"遥控"界面或耳机上的遥控器似乎不会导致崩溃.
就像George在评论中提到的那样,我已经能够用我自己的App,Pandora和至少一个其他音频播放应用程序重现这一点.我已经向Apple提交了一份错误报告.
使用Mercurial我做:
$ hg in
Run Code Online (Sandbox Code Playgroud)
使用SVN我做:
$ svn log -r BASE:HEAD
Run Code Online (Sandbox Code Playgroud)
这与Bazaar有什么关系?
我想确保我们的客户上传的CSV文件确实是PHP中的CSV文件.我正在处理上传本身就好了.我并不担心恶意用户,但我担心会尝试上传Excel工作簿.除非我弄错了,否则Excel工作簿和CSV仍然可以具有相同的MIME,因此检查不够好.
是否有一个正则表达式可以处理验证CSV文件真的是一个CSV文件?(我不需要解析......这就是PHP的fgetcsv()所用的.)我见过几个,但是它们之后通常会出现"它不适用于案例X"之类的评论.
有没有其他更好的方法来处理这个?
(我希望CSV能够保存名字/姓氏,部门名称......没什么特别的.)
我知道这是128欧元和128个苹果.
我认为它是128千字节,兆字节,千兆字节.或者它是128千字节,兆字节,千兆字节?
如果复数是正确的,我应该使用128 kBs,MBs,GBs.这看起来很陌生.
哪个是正确的,复数还是单数?
谢谢 :)
我对'标准'svn布局最熟悉(也很舒服)
+---trunk
| +---file1
| +---file2
| \---...
+---tags
| +---0.0.1
| +---0.1.0
| \---1.0.0
\---branches
+---developer1
| +---file1
| +---file2
| \---...
+---developer2
\---developer3
Run Code Online (Sandbox Code Playgroud)
我的同事在版本控制系统中有不同的背景,宁愿有这种布局
+---trunk
| \---branches
| +---developer1
| | +---file1
| | +---file2
| | \---...
| +---developer2
| \---developer3
+---file1
+---file2
\---...
Run Code Online (Sandbox Code Playgroud)
这完全是错误的方式,但我无法给出充分的技术理由,为什么我们会遇到第二种(当前)方法的问题.
我有一种感觉--mergeinfo不喜欢这种布局,但我们的服务器运行1.4,我不确定很快就会升级.
我正在使用Prism MVVM框架在WPF中实现数据验证.我在ViewModel中使用干净的数据实体,这些实体被绑定到表示层.
<TextBox Text="{Binding User.Email, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)
我在基础ViewModel类中实现了IDataErrorInfo的通用实现,该类对我的Entity上的DataAnnotation属性运行验证(在本例中为User).
问题是当绑定到实体时,WPF框架在实体上查找IDataErrorInfo而不是ViewModel,这是我希望这个逻辑存在的地方.如果我用我的ViewModel中的属性包装我的实体,那么一切正常,但我不希望在ViewModel中使用实体.
有没有办法告诉WPF在ViewModel中查找IDataErrorInfo而不是绑定的子对象?
谢谢,迈克
我正在编写一个创建文件"目录"的应用程序,它可以归因于其他元数据文件,例如附件和缩略图.
我正在尝试将接口抽象到目录,以使目录的使用者不需要知道用于存储文件的基础文件系统.所以我创建了一个名为的接口IFileSystemAdaptor,如下所示.
public interface IFileSystemAdaptor:IDisposable
{
void WriteFileData(string fileName, Stream data);
Stream ReadFileData(string filename);
void DeleteFileData(string filename);
void ClearAllData();
void WriteMetaFileData(string filename, string path, Stream data);
Stream ReadMetaFileData(string filename, string path);
void DeleteMetaFileData(string filename, string path);
void ClearMetaFilesData(string filename);
}
Run Code Online (Sandbox Code Playgroud)
本质上,我的IFileSystemAdaptor接口公开了一个平面文件列表,也可以与其他元数据文件相关联.
正如您所看到的,我正在使用对通用Stream对象的引用来将接口抽象为文件的数据.这样,Catalog的一个实现可以从硬盘返回文件,而另一个实现可以从Web服务器返回数据.
现在我想弄清楚如何防止我的程序离开流.成员应关闭流的是否有经验法则?如果流的消费者关闭它,或者原始创建流的成员是否应该负责关闭它.
我正在尝试序列化/反序列化一个Dictionary<string, object>似乎工作正常,如果对象是一个简单的类型但在对象更复杂时不起作用.
我有这门课:
public class UrlStatus
{
public int Status { get; set; }
public string Url { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的词典中,我添加了一个List<UrlStatus>带有"Redirect Chain"键和一些带有"Status","Url","Parent Url"键的简单字符串.我从JSON.Net回来的字符串如下所示:
{"$type":"System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Object, mscorlib]], mscorlib","Status":"OK","Url":"http://www.ehow.com/m/how_5615409_create-pdfs-using-bean.html","Parent Url":"http://www.ehow.com/mobilearticle35.xml","Redirect Chain":[{"$type":"Demand.TestFramework.Core.Entities.UrlStatus, Demand.TestFramework.Core","Status":301,"Url":"http://www.ehow.com/how_5615409_create-pdfs-using-bean.html"}]}
Run Code Online (Sandbox Code Playgroud)
我用来序列化的代码如下:
JsonConvert.SerializeObject(collection, Formatting.None, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Objects,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
});
Run Code Online (Sandbox Code Playgroud)
反序列化我正在做:
JsonConvert.DeserializeObject<T>(collection, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Objects,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple,
});
Run Code Online (Sandbox Code Playgroud)
字典返回正常,所有字符串都返回正常,但List没有正确反序列化.它刚回来了
{[
{
"$type": "XYZ.TestFramework.Core.Entities.UrlStatus, XYZ.TestFramework.Core",
"Status": 301,
"Url": "/how_5615409_create-pdfs-using-bean.html"
}
]}
Run Code Online (Sandbox Code Playgroud)
当然我可以再次取消这个字符串,我得到了正确的对象,但似乎JSON.Net应该为我做这个.显然,我做错了什么,但我不知道它是什么.
我的应用程序依赖于JavaScript,我想检查客户端浏览器的JavaScript是否已启用,并在关闭时发出警报消息.