2
Я пытаюсь преобразовать следующий Obj-C код в стремительной 3:Swift 3 преобразования NSClassFromString хочет "" Seperator
UIView *targetView = nil;
for (UIView *subView in self.navigationController.navigationBar.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
for (UILabel *label in subView.subviews) {
if ([label isKindOfClass:[UILabel class]]) {
if ([label.text isEqualToString:"right"]) {
targetView = subView;
break;
}
}
}
}
}
CGRect rect = [targetView convertRect:targetView.frame toView:self.view];
CGPoint center_you_need = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
До сих пор у меня есть это:
var targetView: UIView? = nil
for subView: UIView in self.navigationController!.navigationBar.subviews {
if (subView is NSClassFromString("UINavigationButton")) {
for label: UILabel in subView.subviews {
if (label is UILabel) {
if (label.text! == "right") {
targetView = subView
}
}
}
}
}
var rect = targetView!.convertRect(targetView!.frame, to: self.view)
var center_you_need = CGPoint(x: rect.midX, y: rect.midY)
Есть ли другой способ получить позицию центра UIBarButtonItem? – user2722667
Посмотрите на обновленный ответ. Не уверен, что он работает сейчас, но он должен :) – alexburtnik