首页 > 123123

123123

1231212121


swift的类都是namespace类名,用NSStringFromClass是很不方便的,isKindOfClass要好用很多。
包括NSClassFromString一样很不方便,需要拼上项目名

或者用NSStringFromClass(object_getClass(obj))这个方法也可以获得类名字符串


我这个才是完美转换,前面的答案并不纯正(当前代码基于 Swift 2.1.1)。

override func layoutSubviews() {
    super.layoutSubviews()

    publishBtn.center = CGPoint(x: width * 0.5, height * 0.5)

    let buttonWidth = width / 5
    var i = 0
    for view in subviews {
        if !(view is UITabBarButton) {
            continue
        }

        let tabBarButton = view as! UITabBarButton
        tabBarButton.width = buttonWidth
        tabBarButton.x = i * buttonWidth
        if i > 1 {
            tabBarButton.x += buttonWidth
        }
        i++
    }
}

说实话,我蛮想踩一脚你这个问题,你要是熟悉 Objective-C 的话,入门 Swift 应该挺容易的。好好学学吧,我就不踩了~
还有,你这个 UITabBarButton 应该是你自定义的吧?还能直接 self.width、self.height 的?


func layoutSubviews() {
    super.layoutSubviews()
    // 发布按钮控件
    self.publishBtn.center = CGPointMake(self.width * 0.5, self.height * 0.5)
    // 布局四个TabBarButton控件
    var buttonWidth: CGFloat = self.width / 5
    var i: CGFloat = 0
    for tabBarButton: UIView in self.subviews {
        // 判断是否是TabBarButton类型
        if !(NSStringFromClass(tabBarButton.self) == "UITabBarButton") {

        }
        tabBarButton.width = buttonWidth
        tabBarButton.x = i * buttonWidth
        if i > 1 {
            tabBarButton.x += buttonWidth
        }
        i++
    }
}

推荐网站:https://objectivec2swift.com/#/converter/code

【热门文章】
【热门文章】