사용자 정의 UITextfield
을 만들고 UIToolbar
에서 사용하십시오.사용자 정의 UIView의 원점 X를 얻으려면 어떻게해야합니까?
그럼 난 창에 사용자 정의 UITextField
의 원점 X를 얻으려고 사용자 정의 UITextField
의 initWithFrame
[super initWithFrame:frame]
후입니다. 그러나 나는 시도했다
self.frame.origin.x
self.bounds.origin.x
self.superview.frame.origin.x,
self.superview.bounds.origin.x,
CGPoint point = [self.superview convertPoint:self.frame.origin toView:nil]; return point.x;
CGPoint point = [self.superview convertPoint:self.frame.origin fromView:self]; return point.x;
CGPoint point = [self convertPoint:CGPointZero toView:[UIApplication sharedApplication].keyWindow]; return point.x
그리고 그들 모두는 0.0을 돌려 준다.
그러나 실제로 UITextField
은 UIToolbar
의 중간 어딘가에 있습니다. 어떻게 커스텀 오리 지날 x를 얻는가 UITextField
?
내 코드 :
self = [super initWithFrame:frame];
if (self) {
originalHeight = self.bounds.size.height;
originalWidth = self.bounds.size.width;
[self createTableView];
}
return self;
- (void)createTableView
{
self.tableView = [[UITableView alloc] init];
LogDebug(@"Origin x = %f", self.frame.origin.x);
self.tableView.frame = CGRectMake(self.frame.origin.x, originalHeight + 18, originalWidth, 320);
}
편집 : 나는 이것에 대한 해결책을 알아 냈하지만 여전히이 질문 뒤에 이유를 모르지만 누군가가이 주제를 확장 할 수 있다면 나는 감사합니다
.
위의 코드에서 초기화하는 동안 내 사용자 지정 UIView의 원본 X를 인쇄하려고합니다. 앱이 내 사용자 정의 UIView의 원래 점 정보를 알지 못하는 것 같습니다.
나는이 라인self = [super initWithFrame:frame]
나는 정의의 UIView의 원 포인트 정보를 얻을 수 있지만, 내가 잘못했다 후 생각했다. Don’t Message self in Objective-C init (or dealloc)
동안 자체에 메시지를 사용하지 않도록 권고 :
는 또한
self.frame.origin.x
내가이 블로그를 읽었습니다
[[UIApplication sharedApplication].keyWindow convertPoint:self.bounds.origin fromView:self].x;
전체 initWithFrame : 메서드를 게시 할 수 있습니까? – runmad