如何从字符串中删除特殊字符的答案 ? 不管用.
这是我得到的,它给了我一个错误
func removeSpecialCharsFromString(str: String) -> String {
let chars: Set<String> = Set(arrayLiteral: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ1234567890+-*=(),.:!_")
return String(str.characters.filter { chars.contains($0) }) //error here at $0
}
Run Code Online (Sandbox Code Playgroud)
$ 0处的错误表示_Element(aka Character)无法转换为预期的参数类型'String'.
这就是我所拥有的,我希望这个视频能够填满整个屏幕(aspectFill)
playerLayer.videoGravity = kCAGravityResizeAspectFill 应该执行Aspect Fill,但我仍然会在屏幕的顶部和底部出现黑条.
最后一行应该循环视频,但它只是变暗并停止播放.
任何建议表示赞赏.
var moviePlayer: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
// Load the video from the app bundle.
let videoURL: NSURL = NSBundle.mainBundle().URLForResource("video", withExtension: "mp4")!
self.moviePlayer = AVPlayer(URL: videoURL)
self.moviePlayer.muted = true
let playerLayer = AVPlayerLayer(player: self.moviePlayer)
playerLayer.videoGravity = kCAGravityResizeAspectFill //this not working
playerLayer.zPosition = -1
playerLayer.frame = self.view.frame
self.view.layer.addSublayer(playerLayer)
self.moviePlayer.play()
// Loop video.
NSNotificationCenter.defaultCenter().addObserver(self, selector: "loopVideo", name: AVPlayerItemDidPlayToEndTimeNotification, object: self.moviePlayer)
}
func loopVideo() {
self.moviePlayer.play()
}
Run Code Online (Sandbox Code Playgroud) 请参阅演示该问题的示例视图:
struct ListRemovalTransition: View {
let list1 = ["A", "B", "C", "D"]
let list2 = ["A", "E", "F", "G", "H", "I", "J", "K"]
@State var toggle = false
var chosenList: [String] {
toggle ? list1 : list2
}
var body: some View {
VStack {
Toggle(isOn: $toggle) {
Text("Switch List")
}
List(chosenList, id: \.self) { item in
Text(item)
.transition(AnyTransition.opacity.animation(.default))
}
}
.padding()
}
}
struct ListRemovalTransition_Previews: PreviewProvider {
static var previews: some View {
ListRemovalTransition()
}
}
Run Code Online (Sandbox Code Playgroud)
期望的结果是,在不改变位置的情况下删除时,各个行会淡出。相反,发生的事情似乎是所有行在被删除之前首先相互重叠。我已向行文本添加了带有动画的过渡,但这没有影响。