Мое приложение создает несколько UITextViews во время загрузки внутри метода viewDidLoad, так как мне нужно, чтобы они были созданы во время запуска приложения для возможности прокрутки между представлениями и их смены с помощью прокрученный вид. Я попытался создать UIButton и назначить ему функциональность изменения размера шрифта текста внутри UITextView. Однако, поскольку он программно создан в методе viewDidLoad, я не могу получить доступ к ним, ничего не происходит. Я попытался создать UITextViews, используя раскадровку, но не получил нужный результат, поэтому я не могу изменить свои методы создания. Кроме того, не логично вспоминать метод viewDidLoad, когда я нажимаю кнопку, так как в нем множество методов, определенных в нем, и это приведет к утечке мощности центрального процессора, чтобы вызвать его каждый раз, когда мне нужно изменить размер шрифта. Вот как я создать UITextViews:
Изменение размера шрифта UITextView, созданного программно в ViewDidLoad
- (void)viewDidLoad {
CGSize imageSize;
imageSize.height = 693;
imageSize.width = 512;
self.scroll1.minimumZoomScale = 1.0;
self.scroll1.maximumZoomScale = 1.0;
self.scroll1.frame = CGRectMake(0,0,imageSize.width,imageSize.height);
self.scroll1.scrollEnabled = YES;
self.scroll1.contentSize = CGSizeMake(imageSize.width * imgs.count, imageSize.height);
self.scroll1.pagingEnabled = YES;
self.scroll1.bounces = false;
self.scroll1.delegate = self;
leftTextFieldsArray=[NSMutableArray array];
rightTextFieldsArray=[NSMutableArray array];
int counter = 0 ;
for (int i = 0; i <= pants - 2; i ++)
{
CGFloat x = counter * 1024;
subView = [[UIScrollView alloc]initWithFrame:CGRectMake(x, 0, 1024, 693)];
subView.clipsToBounds = NO;
UIImage *img;
UIImage *img2;
img = [imgs objectAtIndex:i];
img2 = [imgs objectAtIndex:i+1];
imageView = [[UIImageView alloc ] initWithImage:img];
imageView.frame = CGRectMake(i * 512, 0, 512, 693);
imageView2 = [[UIImageView alloc ] initWithImage:img2];
imageView2.frame = CGRectMake((i+1) * 512, 0, 512, 693);
///////////// ///////////// ///////////// TextViews Created///////////// /////////////
rightTextView = [[UITextView alloc]init];
leftTextView = [[UITextView alloc]init];
rightTextView.scrollEnabled = YES;
leftTextView.scrollEnabled = YES;
rightTextView.editable = NO;
leftTextView.editable = NO;
//////////////////////////////Specific Behavior regarding positioning in each view//////////
if(i == 4) {
leftTextView.frame = CGRectMake(2048, 0, 500,300);
}
else if(i == 6){
leftTextView.frame = CGRectMake(3072, 450, 500,300);
rightTextView.frame = CGRectMake(3584, 0, 500,200);
rightTextView.layer.zPosition = 2;
}
else if(i==8){
leftTextView.frame = CGRectMake(4096, 0, 500,300);
rightTextView.frame = CGRectMake(4608, 450, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==10){
leftTextView.frame = CGRectMake(5120, 0, 500,300);
rightTextView.frame = CGRectMake(5632, 0, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==12){
leftTextView.frame = CGRectMake(6144, 0, 500,300);
rightTextView.frame = CGRectMake(6656, 450, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==14) {
leftTextView.frame = CGRectMake(7168, 450, 500,300);
rightTextView.frame = CGRectMake(7680, 0, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==16) {
leftTextView.frame = CGRectMake(8192, 0, 500,300);
rightTextView.frame = CGRectMake(8674, 0, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==18){
leftTextView.frame = CGRectMake(9216, 450, 500,300);
rightTextView.frame = CGRectMake(9728, 0, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==20){
leftTextView.frame = CGRectMake(10240, 450, 500,300);
rightTextView.frame = CGRectMake(10752, 450, 500,300);
rightTextView.layer.zPosition = 2;
}
else if(i==22){
leftTextView.frame = CGRectMake(11264, 0, 500,300);
rightTextView.frame = CGRectMake(11776, 0, 500,300);
rightTextView.layer.zPosition = 2;
}
rightTextView.backgroundColor = [UIColor clearColor];
rightTextView.textColor = [UIColor blackColor];
rightTextView.text = rightArray[i/2];
[rightTextFieldsArray addObject:rightTextView];
leftTextView.backgroundColor = [UIColor clearColor];
leftTextView.textColor = [UIColor blackColor];
leftTextView.text = leftArray[i/2];
[leftTextFieldsArray addObject:leftTextView];
subView.scrollEnabled = NO;
subView.userInteractionEnabled = NO;
[subView addSubview:imageView];
[imageView2 removeFromSuperview];
[subView addSubview:leftTextView];
[self.scroll1 addSubview:rightTextView];
[self.scroll1 addSubview:subView];
}
counter ++;
[super viewDidLoad];
}
И я попробовал этот метод в моем Баттона:
- (IBAction)increaseFontFun:(id)sender {
[leftTextView setFont:[UIFont boldSystemFontOfSize:24.0f]];
}
Так что ничего не произошло никакого результата. Как я могу достичь своей цели? Большое спасибо
В методе кнопок вы проверили, что leftTextView не равен нулю? Поместите 'NSLog (@"% @ ", leftTextView);' в методе и посмотрите, какой результат вы получите – Flexicoder
@Flexicoder Спасибо за ур ответ, я попробовал, и вот что я получаю:; layer = ; contentOffset: {0, 0}; contentSize: {0, 30}> –