gpt4 book ai didi

iphone - UIView 页面在导航 Controller 上推送时闪烁(仅限第一次)

转载 作者:行者123 更新时间:2023-11-28 17:40:13 24 4
gpt4 key购买 nike

我在 UIView 页面中有以下 View 层次结构:

2 UIButtons

1 ImageView

1 UILabel

1 UITableView - 分组样式 - 仅包含一个单元格(自定义单元格类型,完全使用没有任何 xib 的代码创建),该单元格包含此 View 层次结构:

ImageView

2 OHAttributedLabels [here's its gitHub page]

1 UILabel 使用CGAffineTransform 方法垂直旋转

我使用 pushViewController 方法将这个 View 的 View Controller 推送到导航 Controller 上,但是,除了第一次打开应用程序的情况外,一切正常,当这个 View Controller 是当我导航回应用程序中的其他 View ,然后重新打开该 View 时,推送 View 立即闪烁一次(屏幕边缘有一些黑条),没有闪烁发生。

这种闪烁的原因是什么?

提前致谢。

附注OHAttributedLabel 在应用程序的其他 View 上进行了测试,没有任何问题。

编辑:以下代码来自 view1.m(我在上面的问题中谈论的 View ):

 - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

UIImage *backgroundImage = [UIImage imageNamed: @"bg1.png"];
UIImageView *backGroundImageView = [[[UIImageView alloc] initWithImage: backgroundImage] autorelease];
backGroundImageView.frame = CGRectMake(0,0,320,411);



[self.view addSubview: backGroundImageView];
[self.view sendSubviewToBack: backGroundImageView];

self.gsTableView.layer.cornerRadius = 10; // to make a the corner of the table view rounded

self.gsParagraphs = [NSArray arrayWithObjects:
NSLocalizedString(@"this is a test string this is a test string this is a test string this is a test string this is a test string this is a test string this is a test string this is a test string this is a test string" , @"test string1"),
NSLocalizedString(@"this is another test string this is another test string this is another test string this is another test string this is another test string this is another test string" , @"test string2"),

nil];

}

下面是view1.m文件中cellForRowAtIndexPath方法的代码:

      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *MyIdentifier = [NSString stringWithFormat:@"MyIdentifier %i", indexPath.row];
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];

if (cell == nil) {
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];

}

cell.imageView.image = [UIImage imageNamed: @"gs_1.jpg"];
cell.imageView.layer.masksToBounds = YES;
cell.imageView.layer.cornerRadius = 5.0;
// cell.textLabel.text = [self.gsParagraphs objectAtIndex:0]; //it will become blurry

//note: the attributed label is used to easily apply justified alignment and many other options
NSMutableAttributedString* cellBody1 = [NSMutableAttributedString attributedStringWithString:[self.gsParagraphs objectAtIndex:0]];
[cellBody1 setTextAlignment:UITextAlignmentJustify lineBreakMode: UILineBreakModeWordWrap];
cell.secondTextLabel.attributedText = cellBody1;

NSMutableAttributedString* cellBody2 = [NSMutableAttributedString attributedStringWithString:[self.gsParagraphs objectAtIndex:1]];
[cellBody2 setTextAlignment:UITextAlignmentJustify lineBreakMode: UILineBreakModeWordWrap];
cell.thirdTextLabel.attributedText = cellBody2;

// cell.cellLabelTextYOffset = 10; this is necessary only for the original text label
cell.cellTitle.text = NSLocalizedString(@"Test Title", @"Test Title");
cell.cellTitleLabelWidth = 170;

return cell;

}

viewDidAppear 方法没有代码

最佳答案

有点不清楚为什么您怀疑您的 TableView Controller 。闪烁是否在表格边界内?

一些嫌疑人:

  • 您的 XIB 可能会定义一个黑色背景的 View ,该 View 被另一个具有您预期颜色的 View 覆盖。
  • 如果 View 尺寸错误了几个像素,就会发生调整大小事件。
  • 旋转事件可能会在对象首次实例化时发生。有人告诉我有一个案例, View 从同一方向旋转到同一方向,留下黑条。 (不确定这是怎么发生的,但它是从委托(delegate)方法中记录的。)

如果您为 View Controller 和表委托(delegate)创建所有委托(delegate)方法,那么调用哪些方法的顺序是什么?

我不知道它是否仍然有效,但我使用了一个白色按钮来代替单单元格分组表。如果您从未打算添加另一个单元格,则几乎不需要使用整个表格。

关于iphone - UIView 页面在导航 Controller 上推送时闪烁(仅限第一次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com