开发者

UITextView inside UIAlertView subclass

I'm trying to put a UITextView inside a custom subclass of UIAlertView that I create using a background image of mine. The UITextView is only for displaying large quantities of text (so the scrolling). Here is the code of my subclass

- (id)initNarrationViewWithImage:(UIImage *)image text:(NSString *)text{
    if (self = [super init]) {
        self.backgroundImage = image;  
        UITextView * textView = [[UITextView alloc] initWithFrame:CGRectZero];
        self.textualNarrationView = textView;
        [textView release];
        self.textualNarrationView.text = text;
        self.textualNarrationView.backgroundColor = [UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:1.0];
        self.textualNarrationView.opaque = YES;
        [sel开发者_如何学JAVAf addSubview:textualNarrationView];
    }
    return self;
}

- (void)drawRect:(CGRect)rect {

    NSLog(@"DRAU");
    CGSize imageSize = self.backgroundImage.size;
    [self.backgroundImage drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
}

- (void)layoutSubviews {


    CGSize imageSize = self.backgroundImage.size;
    self.textualNarrationView.bounds = CGRectMake(0, 0, imageSize.width - 20, imageSize.height - 20);
    self.textualNarrationView.center = CGPointMake(320/2, 480/2);


}

- (void)show{
    [super show];
    NSLog(@"SCIO");
    CGSize imageSize = self.backgroundImage.size;
    self.bounds = CGRectMake(0, 0, imageSize.width, imageSize.height);
    self.center = CGPointMake(320/2, 480/2);
}

This is my first time subclassing a UIView, I'm surely missing something since the background image appears correctly, the UITextview also but after a fraction of a second it jumps all up (seems like a coordinate problem).


I've finally created my own customized version of UIAlertView and provided a UITextView inside of it. Here is what brought me to do so.

By doing it I experienced a weird behaviour when I was trying to attach the UITextView to a background UIImageView as a subview, it wasn't responsive to touches anymore, the way to make it work as expected was to attach it to the base view and implement the following method

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

by making it return YES when encessary.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜