設定tableView固定位置和尺寸---automaticallyAdjustsScrollViewInsets
最近在做專案的時候遇到了一個令人鬱悶的問題,我想在ViewController裡新增一個tableView,並把tableView設定
一個固定的尺寸和位置時,發現結果並不是我所預料的那樣,為什麼cell的頂部沒有於tableView的頂部對齊呢,
這是個很令人鬱悶的問題啊
為了能夠看出明顯的效果,這裡我設定ViewController的背景色為藍色,設定tableView的背景色為黃色,而
cell的背景顏色預設的為白色,並設定了四條資料,並固定了每個cell的高度
//建立tableView並設定tableView在Controller上的尺寸和位置 - (void)createTableView { self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 200, ScreenWidth, 260) style:UITableViewStylePlain]; self.tableView.backgroundColor = [UIColor yellowColor]; self.tableView.dataSource = self; self.tableView.delegate = self; [self.view addSubview: self.tableView]; }
結果如下:
怎麼會這樣呢,查找了很多的資料,也看了一些官方的API後發現,在ios7 Controller新增了一些屬性
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0);
// Defaults to YES
<span style="font-family: 'PingFang SC'; background-color: rgb(255, 255, 255);">按照字面的解釋應該是:自動適應scrollView的Insets並且它的預設值是YES,</span><span style="font-family: 'PingFang SC'; line-height: normal;">如果你不想讓</span><span style="line-height: normal; font-family: Arial;">scroll view</span><span style="font-family: 'PingFang SC'; line-height: normal;">的內容自動調整,</span>
將這個屬性設為NO(預設值YES)自動調整scrollView的inset,設定為NO,不讓ViewController調整,我們自己修改佈局
再次執行我們的程式發現這才是我們預想的效果:- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor blueColor]; self.navigationItem.title = @"個人中心"; //設定為NO,取消系統預設的佈局,我們可以自己對ViewController佈局 self.automaticallyAdjustsScrollViewInsets = NO; [self createTableView]; }
當然讀者可以自己嘗試一下,我們平時往ViewController裡新增tableView時,都是填充整個viewController,
//建立tableView並設定tableView在Controller上的尺寸和位置
- (void)createTableView
{
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
self.tableView.backgroundColor = [UIColor yellowColor];
self.tableView.dataSource = self;
self.tableView.delegate = self;
[self.view addSubview: self.tableView];
}
結果如下:
如果在- (void)viewDidLoad內新增
//設定為NO,取消系統預設的佈局,我們可以自己對ViewController佈局
self.automaticallyAdjustsScrollViewInsets = NO;
你會發現這並不是我們所要的結果:
此時你會發現,我們的tableView被NavigationController遮住了
self.automaticallyAdjustsScrollViewInsets = NO;
看到這裡你應該就會明白什麼了吧。此屬性預設為YES,這樣ViewController下如果只有一個scollView或者其子類,那麼
會自動留出空白,讓scrollView滾動經過各種bar下時能隱約看到內容。如果我們要想自己設定tableView的尺寸和位置就需要
將此屬性設定為NO,自己去控制留白一極座標的問題
相關推薦
設定tableView固定位置和尺寸---automaticallyAdjustsScrollViewInsets
最近在做專案的時候遇到了一個令人鬱悶的問題,我想在ViewController裡新增一個tableView,並把tableView設定 一個固定的尺寸和位置時,發現結果並不是我所預料的那樣,為什麼cell的頂部沒有於tableView的頂部對齊呢, 這是個很令人鬱悶的
快捷位置和尺寸
nth 兼容 span 分享 數據 尺寸 div tel 自己的 一、DOM語句提供給我們計算後樣式,但是還是覺得不太方便,因為通過計算後的樣式得到的屬性值都是字符串格式,不能直接參與程序計算。 所以DOM又提供了一些API:得到的是number類型的數據,是可以直接進行計
神經網路設定層的數量和尺寸
神經網路七:神經網路設定層的數量和尺寸 本文就現在神經網路中層的數量和尺寸,分析其中的優缺點。在此特宣告,本文的內容是來自:CS231n課程筆記翻譯:神經網路筆記1(下) 智慧單元 - 知乎專欄。因本人有時會查閱這些相關的知識點,一直翻文件比較麻煩,特從文件中摘錄複製寫到部落格中
NSRect 位置和尺寸
rect str 表示 size gre width 調用 函數 等價 前言 結構體 這個結構體用來表示事物的坐標點和寬高度。 typedef CGRect NSRect; struct CGRect { CGPoint origin; CGSize
JavaScript獲取DOM元素位置和尺寸大小
在一些複雜的頁面中經常會用JavaScript處理一些DOM元素的動態效果,這種時候我們經常會用到一些元素位置和尺寸的計算,瀏覽器相容性問題也是不可忽略的一部分,要想寫出預想效果的JavaScript程式碼,我們需要了解一些基本知識。 基礎概念 為了方便理解,我們需要了解幾個基礎概念,每個HTML元素
MFC 設定控制元件位置和大小
初始化對話方塊大小: ::SetWindowPos(this->m_hWnd, HWND_BOTTOM, 0, 0, 100, 500, SWP_NOZORDER); 最近經常要用到改變控制元件在對話方塊上的位置和大小,一直找不到有效的方法,查看了很多資料。這篇
51微控制器中將變數、陣列、函式設定在固定位置,定位到絕對地址
一、不帶初值的變數或陣列 直接使用_at_ 關鍵字加上地址就行。 如: unsigned char idata myvar _at_ 0x40; unsigned char code myvar[10] _at_ 0x40; _at_ 關鍵字
Excel怎樣從字串中提取位置和長度不固定的數字
最近上課的時候,常常有學員諮詢怎樣從Excel字元中提取位置和長度都不固定的數字,今天我們分兩種情況來聊一聊對應的解決方案。 情況1:數字前後有特定的分隔符 如果數字前後有特定的分隔符,比如()、##等分隔符,那麼我們可以通過查詢這些分隔符的位置,來定位到數字的位置。 比如下圖所示的這個
Android 設定狀態列的的固定顏色和圖片填充
一,狀態列設定固定的顏色 設定style.xml 的樣式 <style name="ColorTranslucentTheme" parent="Theme.AppComp
指令碼設定IP bat 命令列設定自動獲取IP和固定IP
由於辦公室網路需要固定IP和DNS才能上網, 在連線公共網路或者家裡又需要自動獲取IP和DNS才能上網。 頻繁手動切換很麻煩,就搞了兩個指令碼一鍵設定。 1.新建文字檔案, 命名為固定IP.bat 複製指令碼 @echo //-=-=-=-=-=-=-=-=-=-=-=-=-=-= @echo // 【固定
android 在java程式碼中動態設定控制元件的位置和設定片大小
需要動態改變佈局裡面控制元件的相對位置 如: 1.改變RelativeLayout佈局裡面某個控制元件的layout_toLeftOf 的屬性 RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)view
Android設定SurfaceView任意大小和任意位置
1. 程式碼 public void init() { // FrameLayout ViewGroup.LayoutParams framelayout_params = new ViewGroup.La
如何使用set來設定按鈕的大小和位置,以及一些屬性
b1 = new Button("go on"); //宣告一個按鍵 Frame f = new Frame("bu"); f.setLayout(null); f.setSize(300
CSS設定元件固定在頂部和固定在右下角
固定在頂部 position: fixed;/*固定位置*/ top:expression(documentElement.scrollTop + "px"); z-index:9999;/*設定優先順序顯示,保證不會被覆蓋*/ 將多個元件固定在右下角 /*
jQuery元素的尺寸、位置和頁面滾動事件
bbc left ESS div roc box off solid 頁面 1.獲取和設置元素的尺寸 <!doctype html><html><head><meta charset="utf-8">&l
設定Textview的Drawableleft、Drawableright 等圖片與文字間距、位置和大小的方法
給自己記錄點筆記順便也給用的著的朋友給點參考設定Textview的Drawableleft 等圖片的間距的問題 以Textview舉例 想得到如下圖的Textview效果public class MyText extends TextView { public MyT
JS獲取和設定游標的位置
<html> <head> <script language="javascript"> function getCursortPosition (ctrl) {//獲取游標位置函式 var CaretPos = 0; // IE Su
Swing 中設定模態窗體和啟動位置
{ private JFrame frame =null; privateboolean modal =false; private String title =null; public MyModalFrame() ...{ this(null, false);
iOS 高德地圖設定中心點,獲取中心點的詳細位置和經緯度
先在下面附上逆地理成功之後的圖片 下面附上具體的幾步程式碼實現: 1.通過傳入的經緯度進行逆地理編碼,進行逆地理編碼初始化,然後發起逆地理編碼搜尋。(self.search 這個是定義的 AMapSearchAPI 的物件) - (void)setGegeo:(CLL
Android 在程式碼中設定imageview的大小和位置(滿足單方向的放大縮小和任意位置的移動)
許久以前,在我還是初中的時候,有過一個當網路小說家的夢想,誰知到如今,卻成一個程式設計師。享受生活,享受現在,做一個寫部落格的程式設計師,也算是了卻當初的半個夢想。