0
UITableView有自定義標題UIView,其中包含UILabel。由於表格的右側也有段索引,我想將標籤居中放置在剩餘空間中。如何旋轉viewForHeaderInSection
問題是如何爲「中心」的標籤,同樣,當設備旋轉到的風景線!我已經嘗試了Interface Builder和僅限代碼,並且總是有錯誤。
限制:
- 標籤是儘可能地窄
- 標籤不能被調整大小
- 標籤必須表寬度減去區段索引
一個簡單的內部總是居中方法來解決這個問題將使節標題視圖從tableView右側分離。試圖做到這一點,失敗了。下面是從viewForHeaderInSection一些代碼:
CGRect frame = CGRectMake(0, 0, tableView.bounds.size.width - 32, 50.0f);
// MAGIC 32 for SectionIndexTitles
UIView *view = [[[UIView alloc] initWithFrame:frame] autorelease];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.font = [UIFont fontWithName:@"Courier" size:20];
label.text = @"Section title long";
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor redColor];
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:frame.size
lineBreakMode:UILineBreakModeClip];
label.frame = CGRectMake(0, 0, labelSize.width, labelSize.height);
label.center = CGPointMake(frame.size.width/2.0f, kHeaderHeight/2.0f);
label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
任何想法表示歡迎!甚至無法回想有多少種不同的方式,我失敗了:)
不,相對位置保持不變,但在整個UIView內。我需要UIView中的MINUS 32爲節索引保留的魔法像素... – JOM 2011-03-30 13:34:46
標籤寬度是動態的,我不知道它是什麼。因此,必須在代碼中調整標籤框以最大限度地減少它... – JOM 2011-03-30 14:02:19
一方面,您寫的「標籤不得調整大小」,另一方面,寬度是靈活的:/您是否設置了柔性寬度 - 「箭頭」在界面生成器中?否則寫在你的代碼:'label.autoresizingMask = UIViewAutoresizingMaskFlexibleWidth'不靈活的左或右 – Lepidopteron 2011-03-30 14:06:52