我正在为iOS应用程序开始我的第一个RxSwift项目并学习反应式编程.
到目前为止,这个想法非常简单,用户搜索与搜索栏文本匹配的电影,这会触发一个请求,用于填充带有结果的UITableView.使用在线发现的教程和示例我已经设法实现这一点而不会有太多麻烦.
当我试图加载通过滚动表格视图底部触发的下一页结果时,棘手的部分就出现了.
这是到目前为止使用的代码:
public final class HomeViewModel: NSObject {
// MARK: - Properties
var searchText: Variable<String> = Variable("")
var loadNextPage: Variable<Void> = Variable()
lazy var pages: Observable<PaginatedList<Film>> = self.setupPages()
// MARK: - Reactive Setup
fileprivate func setupPages() -> Observable<PaginatedList<Film>> {
return self.searchText
.asObservable()
.debounce(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest { (query) -> Observable<PaginatedList<Film>> in
return TMDbAPI.Films(withTitle: query, atPage: 0)
}
.shareReplay(1)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:observable pages绑定到我的表视图HomeViewController,其搜索栏文本绑定到searchText.
我正在使用Alamofire在幕后执行API调用,并TMDbAPI.Films(withTitle: query)返回一个Observable的分页列表.
这是我的模型结构 PaginatedList
public struct PaginatedList<T> { …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个iPhone应用程序,该应用程序需要显示歌曲的歌词以及吉他和弦。屏幕上的输出将类似于以下内容:

我仍然想知道哪种格式最好的格式来承载这种数据(每行音轨中的歌词,和弦和时间戳)。我正在考虑使用以这种方式格式化的JSON文件:
{
"lyrics": [
{
"text":"This is one line of lyrics",
"startTimestamp":5000,
"endTimestamp":5800,
"chords":[
{
"symbol":"A",
"position":0.2
},
{
"symbol":"D#",
"position":0.8
}
]
},
{ ... },
{ ... }
]
}
Run Code Online (Sandbox Code Playgroud)
另一个选择是使用Chordpro格式:http ://tenbyten.com/software/songsgen/help/HtmlHelp/files_reference.htm
但是这种格式没有时间戳来将歌词的显示与音乐同步,在iOS上解析起来似乎有些痛苦。我还能考虑其他有趣的选项吗,例如HTML?
该应用程序将仅包含12首曲目的歌词。
我正在开发一款应用程序,要求用户将iPhone瞄准太阳以触发特殊事件.
我可以根据陀螺仪和CoreMotion框架检索设备3D方向四元数,从中我可以获得偏航,滚动和俯仰角度.我还可以根据当前日期和时间(GMT)以及纬度和经度计算太阳的方位角和天顶角.我接下来要弄清楚的是如何比较这两组值(手机方向和太阳位置)以准确地检测设备与太阳的对齐.
关于如何实现这一点的任何想法?
我刚才遇到过这种语法:
[myView setFrame:({
CGRect frame = myView.frame;
frame.size.height = heightValue;
frame;
})];
Run Code Online (Sandbox Code Playgroud)
我不记得我在哪里看到这个,但我想知道使用它而不是经典有什么好处:
CGRect frame = myView.frame;
frame.size.height = heightValue;
[myView setFrame:frame];
Run Code Online (Sandbox Code Playgroud) ios ×2
azimuth ×1
core-motion ×1
format ×1
json ×1
objective-c ×1
observable ×1
pagination ×1
quaternions ×1
reactivex ×1
rx-swift ×1
swift ×1
syntax ×1