我有一個UITableView,在ios6中,我的自定義單元完全拉伸到屏幕的左側和右側。所以我手機屏幕左側的方形圖像很難看。ios7中的UITableViewCell現在在左側和右側有空白
但是,現在在ios7中,左側出現一個小間隙,因此圖像現在偏離側邊,並且與單元格內的文本略有重疊。
這似乎也發生在我現在正在ios7中查看的其他應用程序中 - 所有的應用程序在左側都有空白,也許在右側。
根據界面生成器我的自定義單元格被設置爲320的大小 - ios 7沒有改變它有嗎?
我有一個UITableView,在ios6中,我的自定義單元完全拉伸到屏幕的左側和右側。所以我手機屏幕左側的方形圖像很難看。ios7中的UITableViewCell現在在左側和右側有空白
但是,現在在ios7中,左側出現一個小間隙,因此圖像現在偏離側邊,並且與單元格內的文本略有重疊。
這似乎也發生在我現在正在ios7中查看的其他應用程序中 - 所有的應用程序在左側都有空白,也許在右側。
根據界面生成器我的自定義單元格被設置爲320的大小 - ios 7沒有改變它有嗎?
添加圖像到cell.contentView
解決了這個問題:
[cell.contentView addSubview:imgView];
這種方式,你甚至不必介意separatorInset
財產。
iOS7增加了一個separatorInset
屬性。
嘗試添加以下內容到UITableViewController
:
if ([self.tableView respondsToSelector:@selector(separatorInset)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
在C#中使用Xamarin/MonoTouch的那些
tableView.SeparatorInset = UIEdgeInsets.Zero;
UIEdgeInsetsZero – Jasmeet
我不確定那個評論意味着什麼,但我相信我發佈的代碼是正確的,因爲在Xamarin中這些屬性被轉換爲字段,因此它更易於使用。 Documenetation可以在http://docs.go-mono.com/monodoc.ashx?link=T%3aMonoTouch.UIKit.UIEdgeInsets%2f* – Webmonger
我認爲上面的評論沒有意識到mono是什麼。 'tableView.separatorInset = UIEdgeInsetsZero;'爲obj-c'tableView.SeparatorInset = UIEdgeInsets.Zero;'爲mono! –
我寧願讓自己的分隔符。感覺比使用tableview設置掙扎更簡單。只需將分隔符設置爲none,子類化您的單元並在init中執行此操作。
-(id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if(self){
UIView *seperator = [[UIView alloc] init];
[seperator setBackgroundColor:[UIColor blackColor]];
seperator.frame = CGRectMake(0, self.bounds.size.height-1, self.bounds.size.width, 1);
[seperator setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth];
[self.contentView addSubview:seperator];
}
return self;
}
問題是,在視網膜上顯示分隔符將是2px厚,而UITableView繪製的將仍然是1px厚。我通過定義區分屏幕分辨率和繪製0.5px或1px行的邏輯來繞過這個限制,但這根本不是未來的保證。 – user3099609
這是爲我工作完美:
-(void)viewDidLayoutSubviews
{
if ([self.Video_TableVIEW respondsToSelector:@selector(setSeparatorInset:)]) {
[self.Video_TableVIEW setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.Video_TableVIEW respondsToSelector:@selector(setLayoutMargins:)]) {
[self.Video_TableVIEW setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.cellLayoutMarginsFollowReadableWidth = false
}
我曾經嘗試這樣做沒有成功。我的表格視圖是由界面構建器製作的,我嘗試將代碼插入表視圖實現中的各個位置,但沒有成功(viewdidload,viewwillappear等)。我真的不想進入子類化,如果我可以幫助它,所以我錯過了你的方法的東西? – skeg0
如果您正在使用界面構建器,然後選擇表格視圖,進入屬性檢查器並在標籤爲「分隔符插入」的表格視圖中找到選擇,將下拉列表從默認更改爲自定義,然後將左側值從15更改爲0. – loydbrahn
這看起來會改變每個部分的插頁的標題,但不會在表格單元格本身內。 – skeg0